Windows Mobile 6.5 Flash Partition Structure
This article provides an overview of the internal flash memory partition layout used in devices running Windows Mobile 6.5. Built upon the Windows Embedded CE 5.2 core, Windows Mobile 6.5 implemented a persistent flash memory architecture governed by the Flash Abstraction Layer and Microsoft Partition Manager. Below is an examination of the specific partition types, file systems, and functional divisions that made up the internal flash memory structure of these devices.
Architecture Overview
Windows Mobile 6.5 utilized flash memory (primarily NAND flash)
managed by a Flash Media Driver (FMD) and the Flash Abstraction Layer
(FAL). The FAL presented physical NAND blocks to the operating system as
logical sectors. The Windows CE Partition Manager
(partmgr.dll) organized these logical sectors into discrete
partitions, replacing the volatile RAM-based storage models of early
mobile operating systems with persistent, non-volatile NAND storage.
Primary Partitions in Windows Mobile 6.5
The internal flash memory was divided into several dedicated functional partitions:
1. Bootloader Partitions (IPL and SPL)
- Initial Program Loader (IPL): A minimal, hardware-level bootloader stored in the first blocks of flash memory. It initialized basic hardware registers and loaded the Secondary Program Loader into RAM.
- Secondary Program Loader (SPL): Often referred to as the main bootloader. The SPL handled low-level hardware diagnostics, flashing routines (via USB or SD card), and the loading of the main OS image into memory. These areas were typically kept raw and write-protected during normal operations.
2. Core OS and Kernel (BinFS / XIP)
- Execute-in-Place (XIP): Contained the core kernel
binaries, including
nk.exeand essential core drivers. - BinFS (Binary ROM Image File System): A specialized, read-only file system developed by Microsoft to expose binary common image files directly from flash. BinFS allowed the kernel to demand-page system components into RAM as needed, reducing memory footprints and boot times.
3. Operating System Files (IMGFS)
- Image File System (IMGFS): The central operating system image in Windows Mobile 6.5 was formatted with IMGFS. This was a proprietary, read-only, compressed file system tailored for mobile devices.
- IMGFS contained all OS applications, dynamic link libraries (DLLs), system drivers, and default user interface assets. It supported file-level LZX compression, allowing the complete mobile operating system to fit within constrained flash storage.
4. User Storage and Registry (TFAT)
- Transaction-Safe FAT (TFAT): The primary writable area accessible to users and applications was formatted using TFAT (either TFAT16 or TFAT32). TFAT modified the standard File Allocation Table structure to perform atomic write operations, preventing file system corruption if the device suddenly lost power or suffered battery removal during a write cycle.
- This partition held the device registry hives (
boot.hvanduser.hv), user-installed applications, application data (\Application Data), and user documents (\My Documents).
5. Radio and Hardware Calibration Partitions
- Radio ROM / Baseband Firmware: A distinct raw or proprietary partition that stored the GSM/CDMA cellular baseband firmware, managed independently by the device's baseband processor.
- Device Configuration Data: Often held unique identifiers, such as IMEI numbers, hardware revision codes, and radio frequency calibration data. This block was typically locked to prevent accidental erasure during OS updates.