// Workers AI · dad joke modeWhat did flash memory say? "I'm stuck on you.
This article needs to be updated. (November 2020) |
The Common Flash Memory Interface (CFI) is an open standard jointly developed by AMD, Intel, Sharp and Fujitsu. It is implementable by all flash memory vendors, and has been approved by the non-volatile-memory subcommittee of JEDEC.[1][2] The goal of the specification is the interchangeability of flash memory devices offered by different vendors. The developer is able to use one driver for different flash products by reading identifying information from the flash chip.
Each flash memory device contains the following information: memory size, byte and word configuration, block configuration, and voltage and timing data.
The specification provides several benefits. No or very little information about flash devices has to be stored in tables within system software. It is possible to use lower cost flash memory devices as they become available without rewriting system software. Adapting current software systems shall be done more easily and quickly than previously.
History
[edit]The specification originated as a July 1996 draft jointly authored by AMD, Intel, Fujitsu and Sharp, and was formalised as Release 1.1 on 30 May 1997.[3] The non-volatile-memory subcommittee of JEDEC later adopted the interface and published it as standard JESD68-01 in September 2003. A companion document, Publication 100, assigns the manufacturer and device identification codes that CFI uses to recognise individual vendors.[4]
Operation
[edit]A host reads CFI data by issuing a query command to the flash device, which returns the ASCII string QRY followed by a structured table.[5] The table is divided into several parts: an identification string, the system interface information, the device geometry definition, and primary and alternate vendor-specific extended query sections.[6] Two bytes within the identification string record the primary vendor command set, which tells the driver how to issue program and erase operations. Common values are 0001h and 0003h for the Intel command set and 0002h for the AMD and Spansion command set, so that a single driver can support an entire family of compatible chips.[5]
Support for CFI is implemented in many different operating systems, including FreeBSD[7] and the Linux Kernel through its Memory Technology Device (MTD) subsystem, which can automatically detect compatible flash chips using CFI identification data.[8] Bootloaders such as U-Boot provide an equivalent CFI driver for directly addressable parallel NOR flash.[9]
See also
[edit]References
[edit]- ↑ "JEDEC Standard: Common Flash Interface" (PDF). JEDEC. September 2003. Archived from the original (PDF) on 6 March 2009.
- ↑ "m30l0r7000t0 datasheet - Internet Archive". Internet Archive. 29 April 2006.
- ↑ Advanced Micro Devices; Intel; Fujitsu; Sharp (30 May 1997). Common Flash Memory Interface Specification, Release 1.1 (PDF) (Technical report). Retrieved 2 June 2026.
- ↑ "Common Flash Interface Publication 100: Vendor & Device ID Code Assignments" (PDF). 2001. Archived from the original on 16 July 2011. Retrieved 2 June 2026.
{{cite web}}: CS1 maint: bot: original URL status unknown (link) - 1 2 AP-646: Common Flash Interface (CFI) and Command Sets (PDF) (Technical report). 1998. Retrieved 2 June 2026.
- ↑ "Quick Guide to Common Flash Interface" (PDF). June 2008. Retrieved 2 June 2026.
- ↑ "cfi(4)". FreeBSD Manual Pages.
- ↑ "Memory Technology Device (MTD) — The Linux Kernel documentation". www.kernel.org. Retrieved 9 March 2026.
- ↑ "drivers/mtd/cfi_flash.c". U-Boot Project. Retrieved 2 June 2026.
External links
[edit]JEDEC - free documents require registration
- JEDEC - Common Flash Interface (CFI) Specification, JESD68.01, September 2003.
- JEDEC - CFI ID Codes, JEP137B, May 2004
- JEDEC - Standard Manufacturers ID Code, JEP106AC, August 2010
Infineon/Cypress (formerly Spansion)
- Common Flash Interface Publication 100 (CFI Vendor & Device ID Code Assignments), 2001. (Original link)
- Spansion - App Note - CFI Spec, 2008. (Original link)
- Spansion - App Note - Using CFI to Read and Debug Systems, 2007. (Original link)
- Infineon/Cypress (formerly Spansion) - Quick Guide to Common Flash Interface, 2008, updated 2017.
AMD