TrueFFS for Tornado

Programmer's Guide

1.0

Edition 1


Contents

1 Overview
1.1 Introduction
1.2 Block Data and TrueFFS
1.2.1 How TrueFFS Manages Block Data
1.2.2 Virtual Blocks Make Wear Leveling Possible
1.2.3 Virtual Blocks Simplify Garbage Collection
1.2.4 How Garbage Collection is Triggered
1.2.5 Block Allocation and the Clustering of Related Data
1.3 Fault Recovery in TrueFFS
1.3.1 "Erase after Write" Guarantees Data Integrity
1.3.2 Recovering from Failures During Write or Erase Operations
1.3.3 Recovering from Failures During Garbage Collection
1.3.4 Recovering from Failures During Formatting
1.4 Sharing Flash Memory Between TrueFFS and a Boot Image
1.5 TrueFFS is a Layered Product
1.6 TrueFFS Configuration Display Utilities
1.7 About I/O Sequencing
2 Getting Started
2.1 Introduction
2.2 An Overview of Configuring and Using TrueFFS
2.2.1 Configuring VxWorks and TrueFFS
Changing the Makefile
Changing config.h
Changing sysLib.c
Changing sysTffs.c
2.2.2 Formatting Flash
2.2.3 Creating TrueFFS Block Devices
2.3 BSP-Specific Examples of Using TrueFFS
2.3.1 ads860 with a Board-Resident Flash Array and a PCMCIA Slot
2.3.2 hkbaja47 a Board-Resident Flash Array
2.3.3 iq960rp with a Board-Resident Flash Array
2.3.4 mv177 with a Board-Resident Flash Array
2.3.5 pid7t or pid7t_t with a Board-Resident Flash Array
2.3.6 ss5 with a Board-Resident Flash Array
2.4 Socket Layer Options for the pc386 and pc486 BSPs
2.4.1 Configuring the pc386 and pc486 for TrueFFS and the PCMCIA Driver
2.4.2 x86 with DiskOnChip 2000 and Two PCMCIA Slots Using INCLUDE_PCMCIA
Adding Boot Code to the DiskOnChip 2000
X-86 Pitfalls--CMOS Setup
3 Writing Socket Component Drivers and MTDs
3.1 Introduction
3.2 About the FLFlash and FLSocket Structures
3.2.1 FLFlash
3.2.2 FLSocket
3.3 Writing a Socket Component Driver
3.3.1 Writing a sysTffsInit( ) Routine
3.3.2 Writing an xxxRegister( ) Routine
3.3.3 Writing an flDelayLoop( ) Routine
3.3.4 Writing an flFitInSocketWindow( ) Routine
3.4 Writing an MTD
3.4.1 Writing an MTD Identification Routine
3.4.2 Writing a Map Function for an MTD
3.4.3 Writing a Read Function for an MTD
3.4.4 Writing Write and Erase Functions for an MTD
3.4.5 Registering Your MTD with TrueFFS
3.5 MTD-Supported Flash Devices
Intel 28F008 Flash Support
Intel 28F016 Flash Support
CFI/SCS Flash Support
AMD/Fujitsu Flash Support
NAND Flash Support (NFDC2048)
Disk-On-Chip 2000 Support (NFDC2148)
A Libraries
B Subroutines