This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Hive-based Registry on SD for WinCE 6R3 (BSP 01.02.00)

Other Parts Discussed in Thread: AM3517

Hello,

I've read every statement in this forum regarding the persistent registry on SD card. I've tried the hints from the posts and I've also read the MSDN registry based stuff again.

I also read, that Madhvi did have a solution in the past, but he did not have the source/changes now.

Its also no help, that there should be a solution in Compact 7 - our customers wants CE6 so far and mostly the next time.

I get the hive-based registry on SD to work on Atmel devices before, so I also know what to do in the past.

It would be very kind, if TI could fix this and post an overall patch or a new BSP version. I could not be the only one at this time who has this problem and like to save everything on a SD card. In all our new designs, NAND or NOR is absolutely obsolete and SD is the main memory of choice.

Would be nice if we all must not investigate more work into this as we should.

Thanks.

  • Greg

    Here is the wiki for implementing persistent registry in TI ARM-A8 BSP.

    http://processors.wiki.ti.com/index.php/Persistent_Registry_in_ARM-A8_BSP

    Also, see attached a patch for 01.02.00 release that supports NAND and SD persistent registry. You need to select the right option from the BSP catalog in your OS-design, if using this patch.

     

    sd_persistent_patch.zip
  • Hello Madhvi,

    thank you very much for this detailed Wiki and patch. I use the AM3517 and used the Wiki - but when I start the board I've the following problem:

    FILESYS: Waiting for bootable file system to be mounted.

    Additionaly I've added the following registry values:

    [HKEY_LOCAL_MACHINE\init\BootVars]
        "SystemHive"="Documents and Settings\\system.hv"
        "ProfileDir"="Documents and Settings"
        "Flags"=dword:3

    Then the kernel gets an assertion:

    Unknown: DEBUGCHK failed in file c:\wince600\platform\am35x_bsp\src\bsp_common\sdbus\sdbus.hpp at line 226

    static CSDHost * InsertSDHost(CSDHost * psdHost ) {
            PREFAST_ASSERT(g_pSdContainer!=NULL);

    I've set the flags for the BuiltIn\SDBusDriver ("Flags"=dword:1000) - anything else that could be missing for the AM3517?

  • To ensure, that nothing went wrong, I verified the changes and did a absolutely clean rebuild.

    Then I've problems on another position?! Its DMA depended and when I remove the "Flags" entry from the registry (dma.reg), the system comes up - else it will fail at the following position:

    96337 PID:400002 TID:2950006 OMAPDDGPESurface (alloc): vaddr = 0xdc8a0000 paddr = 0x8f000000
      96340 PID:400002 TID:2950006 Exception 'Data Abort' (4): Thread-Id=02950006(pth=89bc1624), Proc-Id=00400002(pprc=84245aa0) 'NK.EXE', VM-active=02910006(pprc=89bc11ec) 'explorer.exe'
      96341 PID:400002 TID:2950006 PC=c0fe8f74(omap_dss.dll+0x00018f74) RA=c0fe80fc(omap_dss.dll+0x000180fc) SP=dcf1ee00, BVA=00000000

    DmaSetColor (
        DmaDataInfo_t    *pDataInfo,
        DWORD             dwFlag,
        DWORD             dwColor
        )
    {
        SETREG32(&pDataInfo->pDmaLcReg->CCR, dwFlag);

    Any ideas what must be changed?

  • Are you using BSP 01.02.00 as is from TI or is it your modified version? For AM3517, I followed the wiki as is except for tps659xx.reg and tps659xx_gpio.reg and it boots up fine and SD persistent storage works without any issues. you need the flags=1000 for dma.reg else sdhc driver will not be able to use the DMA. Can you post your entire boot-up log?

     

    -Madhvi

  • I've modified the BSP, but not at these drivers. The solution to the problem was much simpler:

    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDBusDriver]
       "Order"=dword:15

    The order value (and the others from 3530) was missing in the SDHC registry file for the AM35x. The next thing that was missing was this entry:

    [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\High_Capacity]

    Then the system comes up with a persistent hive based registry.

     

    The problem with the DMA stuff was caused from my fault. In this compilation the IMGREGHIVE_SD was not checked. Why this change triggered that problem is not of interest, I think :-)

    Thank you for your help and good support!