Qiang Li - Mpu Se

How to support MultiBIN(BINFS) on SDMMC for Freescale IMX5x WinCE 6.0/7.0 BSP -blog archive

Discussion created by Qiang Li - Mpu Se Employee on Mar 1, 2012
Latest reply on Dec 27, 2017 by courant courant

    For MultiBIN system, the EBOOT don't need read the full NK from SDMMC card to memory for WinCE running. It just need to read the RAMIMAGE bin to memory for boot, and this bin is only 3MB, so it can reduce the WinCE boot time.

    The followed is the example to support MultiBIN on SDMMC device, as we know, for BINFS solution, the block device driver(sdmemory.dll) should be loaded by storage manager, but the original SDMMC driver architecture can't meet such requirement, so here we customerized the SDMMC driver for the boot ESDHC port.

    The followed is the pacth which can support both IMX51 and IMX50. Details please check the attached readme file.


For MultiBIN on NAND, please reference to



2013/04/27: added WinCE 7.0 support for iMX51 EVK and iMX53 SMD board, based on WCE700_MX53_ER_1105 and WCE700_MX51_ER_1106 BSP. BINFS for SDMMC WinCE7.zip


2013/05/06: missed "WINCE700\PLATFORM\iMX53_SMD\SRC\DRIVERS\PMIC\DA9052\FILES\DA9052.bib", which will get makeimg failure for iMX53 SMD. Please remove the followed red lines from DA9052.bib.


#define XIPKERNEL   NK


;   Name                    Path                                    Memory Type
;   --------------          ----------------------------------      ------ ----

; Device.exe drivers



2013/05/07: How to use the cfimager.exe to burn the binfs image to SD card, the followed is the example for iMX51 EVK and iMX53 SMD, based on WinCE 7.0 BSP, the offset is same as ucl.xml in MFGTool.


For iMX51 EVK (Disk F is the SD card):

cfimager -f eboot.nb0 -d F -raw -offset 0x400

cfimager -f xip.nb0 -d F -raw -offset 0xA0400


For iMX53 SMD (Disk F is the SD card):

cfimager -f eboot.nb0 -d F -raw -offset 0x400

cfimager -f xip.nb0 -d F -raw -offset 0x120400


2014/07/16: Updated the WINCE600 patch for iMX51 EVK, WINCE600_ER1104_BINFS+HIVEREG+ROMFS_2014_07_16.zip, the followed is the update:

1. Sometimes in sdmemmain.cpp, function SMC_Init(), it will fail to get the card ready event from SDBUS driver, this will make boot up hang. Added a workaround to use watch dog service, if the failure happens, a watchdog reboot will happen. I think the sdhc + sdbus + sdmemory three drivers mode is not good for binfs solution, if there is a simple SDMMC disk driver, the issue should not happen. Unfuture, we don't have such a driver, so I used the watch dog reset workaround, it will increase about 1.2s boot up time when the issue happens.


2. Added SDHC DMA support and BSP_LOADDRIVER_LATER to load the USB driver later, the binfs system can boot into Wince desktop in 8 seconds.


3. Added clean boot menu in EBoot whcih can be used to clean the HIVE registry.


4. XIP.nb0 image size had been changed back to 94MB.

5. The same solution can be used in WinCE700 BSP, please do the porting by yourself.

Original Attachment has been moved to: README.txt.zip

Original Attachment has been moved to: Mfgtools-Rel-WCE600_11.04.00_update.zip

Original Attachment has been moved to: WINCE600_ER1104_BINFS+HIVEREG+ROMFS.zip

Original Attachment has been moved to: WINCE600_ER1104_BINFS.zip

Original Attachment has been moved to: BINFS-for-SDMMC-WinCE7.zip

Original Attachment has been moved to: WINCE600_ER1104_BINFS-HIVEREG-ROMFS_2014_07_16.zip