How to Implement BinFS (Windows CE 5.0)

Send Feedback

You can implement binary ROM image file system (BinFS) on NAND or NOR flash media in a target device in order to read the .bin file format generated by Romimage.exe. BinFS parses the .bin file records of each region and is transparent in nature. This transparency allows BinFS to be invisible an end user. To implement BinFS, you must add multi-bin region support to an existing boot loader along with the necessary modifications to the Config.bib file to allow BinFS to read your run-time image properly.

Hardware and Software Assumptions

  • You have access and familiarity with Platform Builder and the build process.
  • You have basic knowledge of the Windows CE OS, ROMIMAGE, and associated file formats. For more information on ROMIMAGE, see Romimage.

To track your progress in the following table, select the check box next to each step.

  Step Topic
1. Develop a boot loader for your target device. How to Develop a Boot Loader
2. Add support for BinFS to your boot loader. Boot Loader Support for BinFS
3. Modify the MEMORY section of the Config.bib file for your OS design to support BinFS.

Set the NK region to RAMIMAGE. The NK region is where files that must be loaded prior to BinFS are stored. Because the kernel must reside in RAM, and the NK region is RAMIMAGE, the files loaded into the NK region typically include everything needed for the kernel.

Set the EXT region to NANDIMAGE. This forces the EXT address space to not be allocated to RAM. The EXT region is the location for files not stored in the NK region.

Set the CHAIN region to RESERVED. This region is used by the boot loader to access information on where each region is located.

The following example shows the NK, EXT, and CHAIN regions of the MEMORY section of a Config.bib file that supports BinFS:

   NK     800B8000 00300000 RAMIMAGE
   EXT    803B8000 01000000 NANDIMAGE
   CHAIN  813B8000 00001000 RESERVED

For a system that does not have a hive-based registry, the NK region files include Nk.exe, boot.hv, Kd.dll, Coredll.dll, Filesys.exe, Fsdmgr.dll, Mspart.dll, Ceddk.dll, Binfs.dll, an FMD driver, Initobj.dat, Initdb.ini, and default.fdf.

For a system with a hive-based registry that resides on a FATFS partition, the NK region files must also include default.hv, device.exe, devmgr.dll, diskcache.dll, fatfsd.dll, fatutil.dll, pm.dll, relfsd.dll, and user.hv. For MUI, add wince.nls, and for the debugger, add hd.dll, osaxst0.dll, and osaxst1.dll.

For more information on the MEMORY section of a .bib file, see MEMORY Section.

Not applicable.
4. Modify the CONFIG section of the Config.bib file for your OS design to support BinFS.

The CONFIG section of the Config.bib file must specify RAM_AUTOSIZE=OFF, ROM_AUTOSIZE=OFF as well as the XIPSCHAIN value that represents the start of the chain region. This value should match the value specified in the MEMORY section.

The following example shows the CONFIG section of a Config.bib file that supports BinFS:

CONFIG
   AUTOSIZE=ON
   COMPRESSION=ON
   DLLADDR_AUTOSIZE=ON
   KERNELFIXUPS=ON
   PROFILE=OFF
   RAM_AUTOSIZE=OFF
   ROMFLAGS=0
   ROMSIZE=01E00000
   ROMSTART=800B8000
   ROMWIDTH=32
   ROM_AUTOSIZE=OFF
   XIPSCHAIN=813B8000

For more information on the CONFIG section of a .bib file, see CONFIG Section.

Not applicable.
5. If you are using the Flash Media Driver (FMD) provided with Platform Builder, you do not need to modify the Platform.reg file for your OS design. If you are using a custom FMD, you must modify the Platform.reg file for your OS design to load BinFS on top of a block driver. For more information on BinFS Registry Settings, see BinFS Registry Settings. Not applicable.

See Also

Binary Rom Image File System (BinFS) | Boot Loader Support for BinFS | BinFS Registry Settings | Bootpart Library Functions | Flash Media Drivers

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.