Flash MDD+PDD, flashpart bootloader support RRS feed

  • Question

  • I am currently trying to port an existing FMD flash driver to the new MDD/PDD concept. Unfortunatly flashpart seems to not recognize the partition table I have created in bootloader correctly. Partitiosn are created with bootpart library.

    Unfortunatly I could not find any resources about new flashpart driver. Source code also is not available, even in the premium source packages.

    Should the new flashpart driver be able to recognize "old style" partition tables? Or is there any replacement for bootpart library avaialble for EBoot?

    Thursday, January 27, 2011 7:51 AM

All replies

  • Maybe an additional question to this issue:

    It looks like flashpart or flashmdd ignores the reserved flash in SectorInfo structure completly. As there are some flash regions that should not be writabe by design, this would be another task for me. So is there any possiblity to create a read-only region? I could not find an according flag in the region FLASH_REGION_INFO structure.

    Thursday, January 27, 2011 11:06 AM
  • The partition table of MSFlash MDD/PDD is not compatible with "old style" MBR partition table.
    As there is no MSFlash support lib for boot code, to create a partition that can recognized by MSFlash, you either

    1) Have another tiny CE OS that do nothing but just having the MSFlash driver and create the partition.

    2) Analyze a Flash Volume create by MSFlash MDD/PDD so your EBoot can create the same flash metadata that compatible with MSFlash.

    CE7 may provide the library you need to create MSFlash partition in boot code.

    Friday, January 28, 2011 12:26 AM
  • Meanwhile Windows CE/EC 7 has been released. But unfortunatly it looks like the MSFlash drivers are still not available. More precisely the full os looks the same as the CTP.

    Premium source is not available yet. Or did someone spot the corresponding libraries?

    I am still wondering how to use this flash driver technologie without the possibility to create and access flash partitions in EBoot?!

    Friday, April 1, 2011 3:08 PM
  • It is possible to create Flash MDD/PDD compatible partition in boot code but you need to use another boot loader framework platform\common\src\common\bldr\
    Among the BSP in CE7, only x86 based BSP and BSPTemplate utilize this framework but no ARM based sample. (I assume you are using ARM or other RISC based system, right?)
    So basically, you need to ceate a new bootloader using the new BLDR framework and in order to manage MSFlash partition in BLDR, you need to
    1. add following LIB to your SOURCES

        $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\flashmddcore.lib   \
        $(_PLATCOMMONLIB)\$(_CPUDEPPATH)\boot_driver_block_flashmdd.lib \
        $(_PLATLIB)\$(_CPUDEPPATH)\<Your Flash PDD LIB>

    2. Then use BootBlockFlashInit to get the driver handle of MSFlash
    3. Call BootBlockFormat to create partitions
    4. Use BootBlockOpenPartition, BootBlockRead and BootBlockWrite and other API in platform\common\src\common\bldr\inc\bootBlock.h to access partition.

    Friday, April 1, 2011 5:11 PM
  • I know this is old thread, but if someone comes across it, there is a workaround. You can divide the NAND into two parts. EBOOT+NK resides in the first part which is formatted by eboot while flashpart will utilize the remaining blocks. You can modify FMD PDD driver to tell eboot that the total number of blocks is 512 for example. This can be done by checking the Context passed to FMD_Init() function. In the same time FMD PDD will tell flashpart about the entire number of blocks and also return RESERVED status for blocks occupied by EBOOT+NK when flashpart scans the blocks. Need few work on FMD PDD driver. This way, flashpart.dll will not touch the OS blocks and also, EBOOT will not see flashpart region upon OS re-installation.

    Jaafar Kh

    Sunday, May 4, 2014 6:48 PM