Update readme file.
authorgkostka <kostka.grzegorz@gmail.com>
Mon, 11 Nov 2013 14:34:55 +0000 (14:34 +0000)
committergkostka <kostka.grzegorz@gmail.com>
Mon, 11 Nov 2013 14:34:55 +0000 (14:34 +0000)
readme.mediawiki [new file with mode: 0644]

diff --git a/readme.mediawiki b/readme.mediawiki
new file mode 100644 (file)
index 0000000..37fec5a
--- /dev/null
@@ -0,0 +1,186 @@
+==About lwext4==\r
+\r
+The main goal of the lwext4 project is to provide ext2/3/4 filesystem\r
+library for microcontrolers with SD/MMC card support. Ext2/3/4, in my\r
+opinion is one of the best filesystem for SD/MMC.\r
+\r
+kostka.grzegorz@gmail.com\r
+\r
+==Minimum memory requirements==\r
+\r
+=====PROGRAM:=====\r
+ - 20KB\r
+=====RAM:=====\r
+ - 8KB\r
+=====STACK:=====\r
+ - 1KB-2KB (not tested yet)\r
+\r
+\r
+==ext2/3/4 vs FAT32==\r
+;ext2/3/4 > FAT32\r
+* fseek operation on big file in FAT32 is IO heavy\r
+* ext2/3/4 HTREE directories operations are faster than FAT32  \r
+* ext4 extents makes truncate/remove opertion really fast\r
+* more at https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout\r
+\r
+;ext2/3/4 < FAT32\r
+* FAT32 has smaller footprint\r
+\r
+==Credits lwext4==\r
+\r
+A lot of the implementation of lwext4 was taken from HelenOS:\r
+    http://helenos.org/\r
\r
+Some of ideas and features are based on FreeBSD and Linux implementations.\r
+\r
+==lwext4 supported/unsupported ext2/3/4 fs features==\r
+\r
+;FEATURE_INCOMPAT (unable to mount with unsupported feature):\r
+ COMPRESSION: no\r
+ FILETYPE:    yes\r
+ RECOVER:     no\r
+ JOURNAL_DEV: no\r
+ META_BG:     no\r
+ EXTENTS:     yes\r
+ 64BIT:       yes\r
+ MMP:         no\r
+ FLEX_BG:     no\r
+ EA_INODE:    no\r
+ DIRDATA:     no\r
\r
+;FEATURE_INCOMPAT (able to mount with unsupported feature):\r
+ DIR_PREALLOC:   no\r
+ IMAGIC_INODES:  no\r
+ HAS_JOURNAL:    no\r
+ EXT_ATTR:       no\r
+ RESIZE_INODE:   no\r
+ DIR_INDEX:      yes\r
+\r
+;FEATURE_RO (able to mount in read only with unsupported feature):\r
+ SPARSE_SUPER:  yes\r
+ LARGE_FILE:    yes\r
+ BTREE_DIR:     no\r
+ HUGE_FILE:     yes\r
+ GDT_CSUM:      yes\r
+ DIR_NLINK:     yes\r
+ EXTRA_ISIZE:   yes\r
+\r
+==Supported filetypes:==\r
+ FIFO:      no\r
+ CHARDEV:   no\r
+ DIRECTORY: yes\r
+ BLOCKDEV:  no\r
+ FILE:      yes\r
+ SOFTLINK:  no\r
+ SOCKET:    no\r
+\r
+==Other:==\r
+ - block_size: 1KB, 2KB, 4KB ... 64KB\r
+ - little/big endian architecture support\r
+\r
+\r
+==lwext4 project tree==\r
+\r
+ - blockdev         - block devices set, supported blockdevs\r
+ -- filedev         - file based block device\r
+ -- io_raw          - wiodows IO block device\r
+\r
+ - demos            - demo directory sources\r
+ -- generic         - generic demo app, used for development and and debbuging purpose\r
\r
+ - lwext4           - internals of the lwext4 library\r
+\r
+ - toolchain        - specific toolchain cmake files\r
+\r
+ - ext4.h           - lwext4 client library header\r
+ - CMakeLists.txt   - CMake config file\r
+ - ext_images.7z    - ext2/3/4 100MB images\r
+ - Makefile         - helper makefile to call cmake\r
+ - readme.mediawiki - yes, you are here ;)\r
+  \r
+==lwext4 compile Windows==\r
+;Tools needed:\r
+* CMake:  http://www.cmake.org/cmake/resources/software.html\r
+* MinGw:  http://www.mingw.org/\r
+* GnuWin: http://gnuwin32.sourceforge.net/ \r
+\r
+;Create CMake files:\r
+ make\r
+\r
+;Remove CMake files:\r
+ clean\r
+\r
+;Build\r
+ cd build_generic\r
+ make\r
+\r
+==lwext4 compile Linux==\r
+\r
+Tools needed:\r
+ - CMake:  http://www.cmake.org/cmake/resources/software.html\r
\r
+;Create CMake files:\r
+ make\r
+\r
+;Remove CMake files:\r
+ clean\r
+\r
+;Build\r
+ cd build_generic\r
+ make\r
+\r
+==lwext4 generic demo app==\r
+\r
+Features:\r
+ - load ext2/3/4 images\r
+ - load linux block device with ext2/3/4 part\r
+ - load windows volume with ext2/3/4 filesystem \r
+ - directory speed test\r
+ - file write/read speed test\r
+\r
+How to use:\r
+Windows/Linux fileimages:\r
+ cd build_generic\r
+ fileimage_demo --in ext2 \r
+\r
+Windows volumes:\r
+ cd build_generic\r
+ fileimage_demo --in I: --wpart\r
+\r
+Linux block devices:\r
+ cd build_generic\r
+ fileimage_demo --in /dev/your_block_device\r
+\r
+Usage:                                                          \r
+    --i   - input file              (default = ext2)            \r
+    --rws - single R/W size         (default = 1024 * 1024)     \r
+    --rwc - R/W count               (default = 10)                     \r
+    --cache  - 0 static, 1 dynamic  (default = 1)               \r
+    --dirs   - directory test count (default = 0)               \r
+    --clean  - clean up after test                              \r
+    --bstat  - block device stats                               \r
+    --sbstat - superblock stats                                 \r
+    --wpart  - windows partition mode                           \r
+\r
+\r
+==lwext4 compile Cross==\r
+\r
+Toolchain for ARM Cortex-m3/4: https://launchpad.net/gcc-arm-embedded\r
+Toolchain for Blackfin: http://blackfin.uclinux.org/doku.php\r
+\r
+Build bf158 library:\r
+ make bf518\r
+\r
+Build cortex-m3 library:\r
+ make cortex-m3\r
+\r
+Build cortex-m4 library:\r
+ make cortex-m4\r
+\r
+==lwext4 ports==\r
+ -Blackfin BF518 EZKIT SD Card Demo: TBD\r
+ -STM32F4-Discovery SD Card Demo: TBD \r
+\r
+==lwext4 footprint==\r
+                           \r
+TBD
\ No newline at end of file