none
i.mx53: How to have HIVE Registry on WinEC7 RRS feed

  • Question

  • Dear Experts,
    OS: WinEC7 , Platform: freescale i.mx53 custom board, 512MB RAM
    I got fail to have Hive-based registry on WinEC7.
    Some questions need help  !
    1) About catalog item.
    To have hive-based registry, I had enabled hive-based registry catalog item.
    Do I need to enabl "RAM and ROM File System" catalog item or "RAM-only File System" catalog item ??
    2) About "PRJ_ENABLE_FSREGHIVE" variable.
    Do I need to set this environment variable to 1 ??
    (I didn't set this variable in OMAP3530 WinCE6, but still have hive-based registry)
    3) Following is my SD card HIVE boot section in platform.reg. Does anyone have experience to achieve HIVE registry on WinEC7, plz share experience with me ~ thx ~
    ; platforem.reg
    ; HIVE BOOT SECTION
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\ECSPI1]
    ;<---SPI Driver--->
    ; END HIVE BOOT SECTION 
    
    ; HIVE BOOT SECTION
    ;<---I2C Driver--->
    ; END HIVE BOOT SECTION
    
    ; HIVE BOOT SECTION
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PMI]
       "Prefix"="PMI"
       "Dll"="pmicpdk_da9052.dll"
       "Index"=dword:1
       "Order"=dword:2
       "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"    ; PMCLASS_GENERIC_DEVICE   
    #include "$(_TARGETPLATROOT)\src\drivers\pmic\da9052\files\DA9052.reg"
    ; END HIVE BOOT SECTION  
    
    ; HIVE BOOT SECTION
    #if ((defined BSP_PMIC_MC13892 && defined BSP_I2CBUS2) || ((defined BSP_PMIC_DA9052 && defined BSP_I2CBUS1)))
    #include "$(_TARGETPLATROOT)\SRC\Drivers\ESDHC\esdhc_mx53.reg"
    ; END HIVE BOOT SECTION
    
    ; HIVE BOOT SECTION
    IF BSP_SD_HIVE
    [HKEY_LOCAL_MACHINE\init\BootVars]
        "SystemHive"="Documents and Settings\\System.hv"
        "Flags"=dword:3
        "NoDefaultUser"=dword:0
        "DefaultUser"="default"
        "ProfileDir"="Documents and Settings"
        "RegistryFlags"=dword:1   ;Enables aggressive flushing
    
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CSPDDK]    
        "Flags"=dword:1000
    
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PMI]
        "Flags"=dword:1000    
    
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\ECSPI1]
        "Flags"=dword:1000    
    
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\ESDHC2]
        "Flags"=dword:1000
    
    [HKEY_LOCAL_MACHINE\Drivers\Builtin\SDBusDriver]
       "Order"=dword:15
       "Dll"="SDBus.dll"
       "Prefix"="SDC"
       "ThreadPriority"=dword:64     ; default thread priority for dispatch thread
       "RequestListDepth"=dword:30   ; pre-allocated requests
       "Flags"=dword:10000 ; DEVFLAGS_TRUSTEDCALLERONLY
       "IClass"=multi_sz:"{20FA98A8-B298-4b32-8D72-C716AEE2FA84}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"
       "BootPhase"=dword:0
    
    ; SD Memory Storage class driver
    [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
       "Dll"="SDMemory.dll"
       "Prefix"="DSK"
       "BlockTransferSize"=dword:40  ; send no more than 64 blocks of data per bus transfer
    
       "Profile"="SDMemory"
       "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
                         "{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
    
    ; SDHC Memory Storage class driver
    [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\High_Capacity]
       "Dll"="SDMemory.dll"
       "Prefix"="DSK"
       "BlockTransferSize"=dword:40  ; send no more than 64 blocks of data per bus transfer
    
       "Profile"="SDMemory"
       "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
                         "{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
       
    ; MMC Storage Class Driver
    [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class]
       "Dll"="SDMemory.dll"
       "Prefix"="DSK"
       "BlockTransferSize"=dword:40  ; send no more than 64 blocks of data per bus transfer
    
       "Profile"="MMC"
       "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
                         "{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
    
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles]
    	"MountFlags"=dword:0
    
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
       "MountAsBootable"=dword:1
       "MountAsRoot"=dword:1
    
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory\FATFS]
        "MountAsBootable"=dword:1
        "MountAsRoot"=dword:1
        "MountFlags"=dword:2
          
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC]
       "MountAsBootable"=dword:0
       "MountAsRoot"=dword:0
    
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]
       "MountAsBootable"=dword:0
    
    [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\ObjectStore]
        "MountAsBootable"=dword:0
        "MountAsRoot"=dword:0    
    
    ENDIF BSP_SD_HIVE
    ; END HIVE BOOT SECTION
    


    HB
    Tuesday, December 27, 2011 8:48 AM

All replies

  • Dear all,
    OS: WinEC7 , Platform: freescale i.mx53 custom board, 512MB RAM
    If I want to achieve SD Hive, system will be hung when starting.
    But my MMC Hive is okay.
    Following is part of my platform.reg
    If you know how to resolve SD Hive issue, please share with me, thx ~
    ;===============================
    ; --- Hive Registry Configuration ---
    ;===============================
    ;
    ; @CESYSGEN IF FILESYS_FSREGHIVE
    
    ; BootVars Flags:
    ; 1 = Start Storage Manager in boot phase 1 for hive-based registry.
    ; 2 = Start Device Manager in boot phase 1 for hive-based registry.
    ; 4 = Start Storage Manager in boot phase 1 for registry in external
    ;     ROM (e.g., BINFS).
    ; 8 = Start Device Manager in boot phase 1 for registry in external
    ;     ROM (e.g., BINFS).
    ;
    ; We use 1 so that we launch only the Storage Manager in boot phase 1 using
    ; the hive-based registry. This avoids any potential startup conflicts with
    ; having both the Storage Manager and Device Manager running during boot
    ; phase one.
    ;
    IF BSP_MMC_HIVE
    ; HIVE BOOT SECTION
    [HKEY_LOCAL_MACHINE\init\BootVars]
        "SystemHive"="Documents and Settings\\system.hv"
        "ProfileDir"="Documents and Settings"
        "Flags"=dword:3
        "DefaultUser"="User"
        "Start DevMgr"=dword:1
        "RegistryFlags"=dword:2    ; 0:Lazy Flush  1:auto save when modify  2:;Disable background registry flushing to improve performance.
        ; RegistryFlags set 1 will fail, don't know why ?? hbchen@1055-2011/12/28
    
    ; END HIVE BOOT SECTION
    ; @CESYSGEN ENDIF FILESYS_FSREGHIVE
    
    
    ; @CESYSGEN IF CE_MODULES_RAMDISK
    ; @CESYSGEN ENDIF  
    
    ; HIVE BOOT SECTION
    ;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\ESDHC2]
    ;   "Flags"=dword:1000
    ; --- boot path driver ---
    [HKEY_LOCAL_MACHINE\Drivers\Builtin\SDBusDriver]
       "Order"=dword:15
       "Dll"="SDBus.dll"
       "Prefix"="SDC"
       "ThreadPriority"=dword:64     ; default thread priority for dispatch thread
       "RequestListDepth"=dword:30   ; pre-allocated requests
       "Flags"=dword:10000 ; DEVFLAGS_TRUSTEDCALLERONLY
       "IClass"=multi_sz:"{20FA98A8-B298-4b32-8D72-C716AEE2FA84}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"
       "Flags"=dword:1000
       "BootPhase"=dword:1
    
    ; SD Memory Storage class driver
    [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
       "Dll"="SDMemory.dll"
       "Prefix"="DSK"
       "BlockTransferSize"=dword:40  ; send no more than 64 blocks of data per bus transfer
       ;"SingleBlockWrites"=dword:1  ; alternatively force the driver to use single block access
       ;"IdleTimeout"=dword:7D0      ; 2000 milliseconds
       "IdlePowerState"=dword:0     ; 0 == D0, 1 == D1, etc.
       ;"DisablePowerManagement"=""  ; if value present, then disable (remove value to enable)
    
       "Profile"="SDMemory"
       "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
                         "{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
       ;"Flags"=dword:1000
       ;"BootPhase"=dword:0
    
    ; MMC Storage Class Driver
    [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class]
       "Dll"="SDMemory.dll"
       "Prefix"="DSK"
       "BlockTransferSize"=dword:40  ; send no more than 64 blocks of data per bus transfer
       ;"SingleBlockWrites"=dword:1  ; alternatively force the driver to use single block access
       ;"IdleTimeout"=dword:7D0      ; milliseconds
       "IdlePowerState"=dword:0     ; 0 == D0, 1 == D1, etc.
       ;"DisablePowerManagement"=""  ; if value present, then disable (remove value to enable)
    
       "Profile"="MMC"
       "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
                         "{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"
       ;"Flags"=dword:1000
       ;"BootPhase"=dword:0
       ;"Order"=dword:0
    ;===============================
    ; --- StorageManager ---
    ;===============================
    ; --- SDMemory ---
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
        "Name"="SD Memory Card"
        "Folder"="Storage Card"
    
        ;"DefaultFileSystem"="FATFS"
        ;"PartitionDriver"="mspart.dll" ; removable storage cannot have partitions
    
        "MountAsRoot"=dword:0
        "MountAsBootable"=dword:0
    
        "AutoMount"=dword:1
        ;"AutoPart"=dword:1
        ;"AutoFormat"=dword:1
    
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory\FATFS]
        "MountBootable"=dword:0
    ;===============================
    ; --- MMC ---
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC]
        "Name"="MMC Card"
        "Folder"="Storage Card"
    
        ;"DefaultFileSystem"="FATFS"
        ;"PartitionDriver"="mspart.dll" ; removable storage cannot have partitions
    
        "MountAsRoot"=dword:0
        "MountAsBootable"=dword:1
    
        "AutoMount"=dword:1
        ;"AutoPart"=dword:1
        ;"AutoFormat"=dword:1
    
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC\FATFS]
        "MountBootable"=dword:1
    ;===============================
    ; --- HDProfile ---
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile]
        "MountAsBootable"=dword:0
        "MountAsRoot"=dword:0
    
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile\FATFS]
        "MountAsBootable"=dword:0
        "MountAsRoot"=dword:0
    ;===============================
    ; --- ObjectStore ---
    [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\ObjectStore]
        "Dll"="filesys.dll"
        "Paging"=dword:1
        "LoadFlags"=dword:1
        "BootPhase"=dword:0
        "MountPermanent"=dword:0
        "MountAsBootable"=dword:0
        "MountAsRoot"=dword:1
        "DisableFileCompression"=dword:1
    
    ; END HIVE BOOT SECTION
    ;===============================
    ; --- Other System Setting ---
    ;===============================
    ; HIVE BOOT SECTION
    ;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\Timeouts]
    ;    "ACUserIdle"=dword:3C              ; in seconds
    ;    "ACSystemIdle"=dword:78            ; in seconds
    ;    "ACSuspend"=dword:0                ; in seconds
    ;    "BattUserIdle"=dword:3C            ; in seconds
    ;    "BattSystemIdle"=dword:78          ; in seconds
    ;    "BattSuspend"=dword:12C            ; in seconds
    ; END HIVE BOOT SECTION
    
    ENDIF BSP_MMC_HIVE
    


    Wednesday, December 28, 2011 8:07 AM
  • Have you tried to set "MountAsBootable" for your SD profile?
    e.g.

    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
    "MountAsBootable"=dowrd:1

    And you may want to unset the one in MMC profile

    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC]
    "MountAsBootable"=dowrd:0
    Wednesday, December 28, 2011 6:12 PM
  • Dear KMOS,

    Yes, I had set "MountAsBootable" for my SD profile, and unset the one in MMC profile.



    Thursday, December 29, 2011 1:21 AM
  • Hi

    Have you checked the location of sistem hive ?  from BSP Porting Guide for Windows Embedded Compact 7.pdf there is a chapter

    Enforcing the Location of System Hive File
    In prior versions of Windows Embedded CE, the location of the system hive file has been left to BSP architects. Starting with Windows Embedded Compact 7, the system hive file must be in the path specified by Common.bib as shown in the following code example.
    [HKEY_LOCAL_MACHINE\init\BootVars]
    "SystemHive"="Windows\\Registry\\system.hv"
    If you override the default location, you may encounter the following error when booting:
    FSDMGR!ProcessRebootFlags: failed cleaning volume!

     

    hope this helps

    Regards

    Tugrul

    Wednesday, January 4, 2012 2:03 PM
  • I have tried above registry setting for SD Card Hive.But it is not working HIVE.

    It is detect SD card .

     

    Friday, January 27, 2012 7:38 AM
  • We are having similar issues with the imx51 BSP under WinCE 6.  It works most of the time, but somtimes it hangs on boot and the last print on the debug is..

    FILESYS: Waiting for bootable file system to be mounted.

    At this point somewhere it kills the system because the watchdog kicks.  It does this in our clone and in the version with the EVK from freescale.  So far freescale is not providing much support for this issue.  If I find what it is, I will post it.


    Tony Owen MKS Instruments, Inc.

    Tuesday, February 7, 2012 11:05 PM
  • Hi Tony

    Do you have any good news about this issue? I've faced this issue for a long long long time. Any hint would be appreciate.

    Wednesday, February 22, 2012 5:39 AM
  • Hi all,

    i have the problem, too,

    What kind of registry is set in your image?

    If i save the registry into a folder in RAM [SDMemory MountAsBootable=0 MountAsRoot=0, ObjectStore MountAsBootable=1 MountAsRoot=1] (even if it is hive registry), i have no problem.

    If i change into SDMemory MountAsBootable=1 MountAsRoot=0, ObjectStore MountAsBootable=0 MountAsRoot=1, my image sometimes run, some times stop with the message

    FILESYS: Waiting for bootable file system to be mounted.


    SteMMo

    Monday, July 16, 2012 9:07 AM
  • Hi All,

    For what it's worth I just fixed a similar problem on an i.MX53 based Compact 7 platform by adding "; HIVE BOOT SECTION" and "; END HIVE BOOT SECTION" around all the FlashPDD and MSFlash entries in _TARGETPLATROOT%\SRC\DRIVERS\BLOCK\NANDFMD\nand.reg.

    The flash is now correct loaded during the registry boot phase

    Hope this helps

    --M

    Tuesday, October 16, 2012 5:00 PM