Download presentation
1
Advanced XIP Filing System
AXFS Advanced XIP Filing System Jared Hulbert Numonyx April 15, 2008 Source1: This presentation, Machine #? Screens: Output to Left and Right Main Screens, Left Confidence Screen Notes: This presentation will be controlled by Ed Doller Source2: Live video Screens: Main Middle Screen Notes: Source3: This presentation, Machine #? Screens: Right Confidence Screen Notes: same as Source1 with “1 click” ahead so Ed can see upcoming animations and/or foils
2
Agenda Goal/History Features Architecture Test Results
Kernel Integration
3
Project Goals Supportable solution for application XIP
Fine grained control on compression Flexible use of all system memories NOR, NAND, RAM
4
What is Application XIP?
eXecute In Place of userspace code Run code from where it is stored on Flash Saves memory No paging = higher performance “I thought the kernel supported XIP?” Yes, for ext2 with specialized hardware Yes, for kernel code segments (xipImage)
5
Why a New Filesystem? CRAMFS XIP patches used to work BUT...
~9 years old and haven’t been merged??? patches broke, real bad, every year File level compression choice SquashFS? New, better compression BUT… Block device oriented architecture Didn’t see how to fit new concepts into arch
6
Features Basic Attributes Compression Flexible Mount Tools Read-only
64bit Designed with CE requirements in mind Compression 4KB-4GB compression block size Page by page uncompression map for XIP Flexible Mount MTD (NAND/NOR) block device split across XIP NOR and non-XIP NAND Tools GPL mkfs.axfs Supported propriety image builder available
7
Onmedia Format Superblock Region Descriptor Regions
Points to many region descriptor Region Descriptor Describes / points to one region Regions Each data type / table has own region permissions, file names, file node info, file data, etc. Region Descriptor Region Descriptor Region Descriptor File Info XIP Region Compressed Region
8
Data Flow inode Node Index Node Type Table XIP Region Index 0 Index 1
Compressed Compressed Region cblock Offset Table Uncompressed cblock Index 0 Index 2 Index 1 Index 3 cnode Offset Table Index 3 Application Virtual Pages
9
Mount Options mount –t axfs –o block_dev=/dev/mtd1 /dev/mtd0 /mnt/axfs
/dev/sda0 ~/file.axfs (-o loop) /dev/mtd0 (NAND) /dev/mtd0 (NOR) /dev/mtd0 (NOR) AXFS Image AXFS Image AXFS Image AXFS Image AXFS Image Part 1 (MMAP) /dev/mtd1 (NAND) AXFS Image Part 2 (IO)
10
Image Size Comparison ~1 year old Opie build from OpenEmbedded
11
Total Memory Used
12
Fitting into Real Chips
13
Performance: direct comparison
PXA270 Linux Opie build 520 MHz (CPU) 208 MHz (memory clock) 104 MHz (SDRAM bus) 52 MHz (NOR flash bus) xipImage CONFIG_PREEMPT=y MTD updated to Sept 25 git pull “mem=24MB” in kernel commandline OpenEmbedded ~1 year old
14
Performance: Direct Comparison
Root Filing System Comparison Video at:
15
Performance: realistic comparison
Started with commercial phone PXA270, 48MB RAM, 32MB NOR, 96MB NAND 297 MHz (CPU) / 97 MHz (SDRAM bus) /48 MHz (NOR flash bus) code in CRAMFS from NOR data in NAND “XIP” code in AXFS from NOR “SnD” code in CRAMFS from NAND data on NAND
16
Performance: realistic comparison
XIP vs. SND: Realistic Performance Comparison Video at:
17
Kernel Integration Status
Patches VM_MIXEDMAP / pageless XIP patchset just got in –mm tree 2.6.26? Physaddr in mtd->point() Waiting on dwmw2 Todo Features Added compression options (LZO, LZMA, etc) brd RAM disk support
18
Resources Git tree Sourceforge site
git://git.infradead.org/home/jehulber/axfs.git Sourceforge site
19
App launch time
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.