Changes between Version 14 and Version 15 of Developer/FileSystems


Ignore:
Timestamp:
09/17/08 04:33:42 (16 years ago)
Author:
ChrisJohns
Comment:

Updates and corrections.

Legend:

Unmodified
Added
Removed
Modified
  • Developer/FileSystems

    v14 v15  
    7272
    7373
    74 RTEMS supports the MSDOS file system or the FAT (File Allocation Table) File System. This file system uses the block device library and the block device drivers to implement the file system.
     74RTEMS supports the MSDOS file system or the FAT (File Allocation Table) File System. This file system uses the block device library and the block device drivers to access various types of disk media.
    7575
    7676<blockquote>
     
    8787</blockquote>
    8888
    89 The Block Devices layer provides a buffering and caching type function that improves the performance of the file system.  It also provides a simplified driver interface. Any file system could use the Block Devices layer how-ever only the MSDOS file system does. The block devices supported are:
     89The file system interfaces to the cache. The cache provides a performance increase to applications using the MSDOS file system. Many FAT operations require more than one pass over a FAT directory or the FAT table and holding this data in memory increases performance. The Block Devices layer is optional and provides any specific device protocols, for example ATA disks. Any file system could use the Block Devices layer how-ever only the MSDOS file system does. The block devices supported are:
    9090
    9191# ATA Disk Drives
     
    9595# SPI SD Card
    9696
    97 Block devices are normally accessed using the block device cache.
     97Block devices are normally accessed from the block device cache and not directly. The Block Device driver are specific to the type of hardware used to access the disk media.
    9898
    9999See [wiki:TBR/UserManual/Using_the_RTEMS_DOS_File_System Using the RTEMS DOS File System] to see how to configure and use this file system in RTEMS.
     100
     101The MSDOS file is tested against FreeDOS and Windows.
    100102= ATA Disk Drives =
    101103
    102104
    103 The ATA Disk Drive support allows an IDE type device to be accessed. The device normally has a Master Boot Record and a partition table. The ATA Disk driver is currently located in libchip. The IDE disk can be a hard disk or a Compact Flash disk in IDE mode.
     105The ATA Disk Drive supports IDE type disk media. The device normally has a Master Boot Record and a partition table. The ATA Disk driver is currently located in libchip and the disk can be a hard disk or a Compact Flash disk in IDE mode.
    104106
    105 The ATA driver is a task that interfaces to a BSP supplied driver loaded into a table. Initialization and mounting of a partition on an ATA disk is a 2 stage process. The Master Boot Record (MRB) is read from the disk and various partition checks. The mounting of a partition requires the selection of a partition and a mount point.
     107The ATA driver is a task that interfaces to a BSP supplied driver. The BSP initializes a table with the BSP driver functions. Initialization and mounting of a partition on an ATA disk is a 2 stage process. The Master Boot Record (MRB) is read from the disk and valid MSDOS partitions added as devices. The mounting of a partition requires a partition device path and a mount point.
    106108= RAM Disk =
    107109
    108110
    109 The RAM disk allows a fixed sized disk driver to be created in RAM. You can provide the address of the RAM or let the driver allocate the RAM from the heap. If you create a disk from the heap you will need to format it. If you provide the address of the RAM to use it could reside in static RAM and therefore survive a reset and may or may not need to formatted. If the RAM is battery backed up you may consider the Non-volatile or NVDISK driver. The RAM disk does not provide any checking on the blocks in RAM. It is the fastest file system.
     111The RAM disk allows a fixed sized disk to exist in RAM. You can provide the address of the RAM or let the driver allocate the RAM from the heap. If you create a disk from the heap you will need to format it. Providing the RAM address allows you to use static RAM that could survive a reset and may or may not need to be formatted during initialisation. If the RAM is battery backed up you may consider the Non-volatile or NVDISK driver. The RAM disk does not provide any checking on the blocks in RAM. It is the fastest block device driver.
    110112= Non-Volatile Disk =
    111113
    112114
    113 The Non-volatile or NVDISK is similar to the RAM disk who-ever each block has a checksum. It provides a one to one mapping of blocks to the device like the RAM disk but it also adds a CRC checksum on each block. The NVDISK drive is suitable for battery backed up static RAM or EEPROM type devices that are byte re-programmable.
     115The Non-volatile or NVDISK is similar to the RAM disk how-ever each block has a checksum. It provides a one to one mapping of blocks to the memory like the RAM disk but it also adds a CRC checksum on each block. The NVDISK driver is suitable for battery backed up static RAM or EEPROM type devices that are byte re-programmable.
    114116= Flash Disk =
    115117
    116118
    117 The Flash disk driver or FDISK driver maps a block disk device to flash devices. You can specify the devices and how much of each device to use when creating a disk. The driver will manage the flash sectors/segments and handle the mapping of the disk blocks to the flash devices. The types of flash supported is independent of the flash driver. You define device descriptions the flash driver uses. The flash driver is not a flash file system, rather it is a way to map an existing block device file system to flash devices. Currently the flash driver does not support NOR flash devices and does not journal blocks written to the disk. This means you need to manage power failures. Journaling support could be added in the future and if you are interested in supporting this please contact OAR Corp.
     119The Flash disk driver or FDISK driver maps a block disk device to flash devices. You can specify the devices and how much of each device to use when creating a disk. This allows the disk to share a boot image. The driver will manage the flash sectors/segments and handle the mapping of the disk blocks to the flash devices. The types of flash supported is independent of the flash driver. You define device descriptions the flash driver uses. The flash driver is not a flash file system, rather it is a way to map an existing block device file system to flash devices. Currently the flash driver does not support NOR flash devices and does not journal blocks written to the disk. This means you need to manage power failures. Journaling support could be added in the future and if you are interested in supporting this please contact OAR Corp.
     120
     121The flash driver does manage the moving of blocks to allow the the recovery of flash segments (sectors). The compaction operation can cause flash updates to vary in length.
    118122= SPI SD Card =
    119123
    120124
    121 The SPI SD Card driver is locate in libchip. It uses libi2c despite its name supports I2C and SPI serial bus interfaces.
     125The SPI SD Card driver is locate in libchip. It uses libi2c and despite this libraries name supports I2C and SPI serial bus interfaces.
    122126= Block Device Cache =
    123127
     
    135139
    136140The cache has a swap out task that collects blocks who's hold timer has expired for a specific device and writes them to disk device. Each modified block as an individual timer and the cache can be configured by the driver to only write consecutive blocks helping drivers that support the multi-sector write operations.
     141
     142The cache can be synchronized at the request of a user giving an application full control over the  data written to the disk media.