=====Contents===== * [[https://www.linuxfoundation.org/#Introduction|1 Introduction]] * [[https://www.linuxfoundation.org/#File_System_Guidelines|2 File System Guidelines]] * [[https://www.linuxfoundation.org/#FIL.1.0_Operational_Guidelines|2.1 FIL.1.0 Operational Guidelines]] * [[https://www.linuxfoundation.org/#FIL.1.1_NAND.2FNOR:_RAM_Guidelines|2.1.1 FIL.1.1 NAND/NOR: RAM Guidelines]] * [[https://www.linuxfoundation.org/#FIL.1.2_NAND.2FNOR:_Boot-time_Speed_Enhancements|2.1.2 FIL.1.2 NAND/NOR: Boot-time Speed Enhancements]] * [[https://www.linuxfoundation.org/#FIL.1.3_NAND.2FNOR:_File_System_Mount_Time|2.1.3 FIL.1.3 NAND/NOR: File System Mount Time]] * [[https://www.linuxfoundation.org/#FIL.1.4_NAND.2FNOR:_Support_for_OMA-compatible_ROM_Updating|2.1.4 FIL.1.4 NAND/NOR: Support for OMA-compatible ROM Updating]] * [[https://www.linuxfoundation.org/#FIL.1.5_NAND:_Minimal_Pre-Erase_Writes|2.1.5 FIL.1.5 NAND: Minimal Pre-Erase Writes]] * [[https://www.linuxfoundation.org/#FIL.1.6_NAND:_Multiblock_Writes|2.1.6 FIL.1.6 NAND: Multiblock Writes]] * [[https://www.linuxfoundation.org/#FIL.1.7_NOR:_Support_for_NOR_Flash_.E2.80.9CConfiguration_Area.E2.80.9D|2.1.7 FIL.1.7 NOR: Support for NOR Flash “Configuration Area”]] * [[https://www.linuxfoundation.org/#FIL.1.8_NOR:_Execute-in-Place_for_NOR_Flash|2.1.8 FIL.1.8 NOR: Execute-in-Place for NOR Flash]] * [[https://www.linuxfoundation.org/#FIL.2.0_Functional_Guidelines|2.2 FIL.2.0 Functional Guidelines]] * [[https://www.linuxfoundation.org/#FIL.2.1_NAND.2FNOR:_Multiple_Page_Sizes|2.2.1 FIL.2.1 NAND/NOR: Multiple Page Sizes]] * [[https://www.linuxfoundation.org/#FIL.2.2_NAND.2FNOR:_Transaction_APIs|2.2.2 FIL.2.2 NAND/NOR: Transaction APIs]] * [[https://www.linuxfoundation.org/#FIL.2.3_NAND.2FNOR:_Compression|2.2.3 FIL.2.3 NAND/NOR: Compression]] * [[https://www.linuxfoundation.org/#FIL.2.4_NAND.2FNOR:_Fast_Indexing|2.2.4 FIL.2.4 NAND/NOR: Fast Indexing]] * [[https://www.linuxfoundation.org/#FIL.1.9_NAND:_Unified_and_Consistent_Bad_Block_Management|2.3 FIL.1.9 NAND: Unified and Consistent Bad Block Management]] * [[https://www.linuxfoundation.org/#Contributors|3 Contributors]] * [[https://www.linuxfoundation.org/#Appendix_A:_File_System_References|4 Appendix A: File System References]] ====== Introduction ====== The Mobile Linux Platform File System guidelines section contains guidelines essential to the proper operation and management of mass storage used with various types on mobile devices. The most common form of mass storage used for mobile devices is likely to be some form of solid-state “flash” storage. However, some guidelines may also apply to other media. The Linux Virtual File System can support multiple file system schemes on a single system. Given that different types of mass storage have their own idiosyncrasies, capabilities and operational characteristics, it is not anticipated that a single file system will satisfy all guidelines or be equally well-suited for use on all media types. Devices supporting a range of media types are likely to need to support several types of file systems.====== File System Guidelines ====== ===== FIL.1.0 Operational Guidelines ===== //Linux Foundation MLI specifies that system software MUST provide a robust set of operational file system capabilities.//
//Note: Keywords indicate whether operational Guidelines are applicable to NAND-based or NOR-based flash storage, or both.// ==== FIL.1.1 NAND/NOR: RAM Guidelines ==== **Description:** Linux Foundation MLI specifies that RAM requirements MUST be kept to a minimum (e.g. storing each journaling node in RAM should be avoided.) ==== FIL.1.2 NAND/NOR: Boot-time Speed Enhancements ==== **Description:** Linux Foundation MLI specifies that boot-time improvements using the MBR and/or checkpoints SHOULD be implemented in the context of the file system. ==== FIL.1.3 NAND/NOR: File System Mount Time ==== **Description:** Linux Foundation MLI specifies that the file system mount time MUST be better than linear with overall file system size. ==== FIL.1.4 NAND/NOR: Support for OMA-compatible ROM Updating ==== **Description:** In line with requirements of OMA, Linux Foundation MLI specifies that the system MUST have the capability to update the Linux kernel and file system and/or download new applications over the air. The usage needs to reserve a special pre-defined space in the flash memory to save the delta image, the difference between an old version and a new version generated by a special tool. ==== FIL.1.5 NAND: Minimal Pre-Erase Writes ==== **Description:** Linux Foundation MLI specifies that, for NAND storage, the number of writes to the data area and spare area before an erase SHOULD be reduced, in order to support the most restrictive NAND implementations. ==== FIL.1.6 NAND: Multiblock Writes ==== **Description:** Linux Foundation MLI specifies that, for NAND storage, the file system SHOULD allow for multi-block writes. ==== FIL.1.7 NOR: Support for NOR Flash “Configuration Area” ==== **Description:** Linux Foundation MLI specifies that an enhanced NOR flash file system should be capable of supporting a "configuration area" in NOR flash in devices where one is available. ==== FIL.1.8 NOR: Execute-in-Place for NOR Flash ==== **Description:** Linux Foundation MLI specifies that file systems for NOR flash SHOULD allow for an XIP (“execute-in-place”) capability. ===== FIL.2.0 Functional Guidelines ===== //Linux Foundation MLI specifies that system software MUST provide a robust set of functional file system capabilities.//
//Note: Keywords indicate whether operational Guidelines are applicable to NAND-based or NOR-based flash storage, or both.// ==== FIL.2.1 NAND/NOR: Multiple Page Sizes ==== Description: Linux Foundation MLI specifies that multiple page sizes (e.g. 512K, 2048K, etc.) SHOULD be supported. ==== FIL.2.2 NAND/NOR: Transaction APIs ==== **Description:** Linux Foundation MLI specifies that the file system MUST provide transaction-oriented APIs (e,g. “commit”, “rollback”, etc.) ==== FIL.2.3 NAND/NOR: Compression ==== **Description:** Linux Foundation MLI specifies that the file system MUST provide built-in support for data compression. ==== FIL.2.4 NAND/NOR: Fast Indexing ==== **Description:** Linux Foundation MLI specifies that fast file indexing/fast search capability MAY be incorporated into the file system. = "Worthy Non-Goals" The following has been moved to this “non-goal” section, since it seems to amount to a “nice-to-have-but-no-plans-to-address” sort of thing. ===== FIL.1.9 NAND: Unified and Consistent Bad Block Management ===== Description: Different NAND file systems have different bad block management methods. When you renew the whole flash content, some of the bad block information may be lost. It would be useful if the system had a unified and consistent bad block management method. It would be good if the boot loader could align with this new method. ====== Contributors ====== * Rob Rhoads - Intel, Inc. * David “Lefty” Schlesinger - Access Company Ltd. //(editor)// ====== Appendix A: File System References ====== To be supplied