none
Flash MDD Recover Transaction Log is failing and WinCE 6.0 OS is not loading some times. RRS feed

  • Question

  • Hi All,

    I am facing starange issue. Some times Flash MDD Recover Transaction Log is failing and WinCE 6.0 OS is not loading. I am using IMX51 processor along with WinCE 6.0. I have Nand Flash. I pasted call stack and os prints below.

     

    Call Stack:

    ********

    FLASHMDD!FlashPddHelper::ReadPhysicalSectors(unsigned long 0x00000dc5, unsigned long 0x00000001, void * 0x00000000, void * 0xd0312700, unsigned long * 0x00000000)  line 300 + 160 bytes

    FLASHMDD!TransactionLog::FindCheckpoint()  line 620 + 96 bytes
    FLASHMDD!TransactionLog::LocateLog(int * 0xd02bddec)  line 360 + 8 bytes
    FLASHMDD!TransactionLog::RecoverTransactionLog()  line 126 + 12 bytes
    FLASHMDD!FileSysFal::Init()  line 600 + 16 bytes
    FLASHMDD!FlashRegion::AddPartition(__FLASH_PARTITION_INFO * 0xd02be00c)  line 1317 + 24 bytes
    FLASHMDD!FlashRegion::LoadPartitionTable()  line 1016 + 12 bytes
    FLASHMDD!FlashRegion::Init(FlashMddInstance * 0xd0310320, FlashPddInterface * 0xd0310300, unsigned long 0x00000000)  line 814 + 8 bytes
    FLASHMDD!FlashMddInstance::Init()  line 59 + 52 bytes
    FLASHMDD!FlashMddWrapper::Init()  line 86 + 36 bytes
    FLASHMDD!FlashMdd_Init(unsigned long 0xd02be67c)  line 124 + 8 bytes
    DEVMGR!LaunchDevice(fsdev_t * 0x00000000, unsigned long 0x00c30002, unsigned long 0xc0503720, void * 0xc0503720)  line 624 + 28 bytes
    DEVMGR!I_ActivateDeviceEx(const unsigned short * 0xd0045220, const _REGINI * 0xd00450e0, unsigned long 0x00000003, void * 0x00000000)  line 1724 + 20 bytes
    DEVMGR!DM_ActivateDeviceEx(const unsigned short * 0xd0045220, const _REGINI * 0xd00450e0, unsigned long 0x00000003, void * 0x00000000)  line 110 + 20 bytes
    K.COREDLL!xxx_ActivateDeviceEx(const unsigned short * 0xd0045220, const void * 0xd00450e0, unsigned long 0x00000003, void * 0x00000000)  line 59 + 40 bytes
    BUSENUM!DeviceFolder::LoadDevice()  line 164 + 84 bytes
    BUSENUM!BusEnum::ActivateAllChildDrivers()  line 294
    BUSENUM!BusEnum::PostInit()  line 158 + 28 bytes
    BUSENUM!DefaultBusDriver::FastIOControl(unsigned long 0x002a0048, unsigned char * 0xd02bf204, unsigned long 0x00000008, unsigned char * 0x00000000, unsigned long 0x00000000, unsigned long * 0x00000000, DeviceFolder * * 0x00000000)  line 415 + 28 bytes
    BUSENUM!DefaultBusDriver::IOControl(unsigned long 0x002a0048, unsigned char * 0xd02bf204, unsigned long 0x00000008, unsigned char * 0x00000000, unsigned long 0x00000000, unsigned long * 0x00000000)  line 153 + 72 bytes
    BUSENUM!IOControl(void * 0xd0044f00, unsigned long 0x002a0048, unsigned char * 0xd02bf204, unsigned long 0x00000008, unsigned char * 0x00000000, unsigned long 0x00000000, unsigned long * 0x00000000)  line 393 + 64 bytes
    DEVMGR!DM_DevDeviceIoControl(fsopendev_t * 0x00000000, unsigned long 0x00000000, void * 0x00000000, unsigned long 0x00000000, void * 0x00000000, unsigned long 0x80289114, unsigned long * 0x000000e7, _OVERLAPPED * 0x82a39540)  line 453 + 76 bytes
    KERNEL!MDCallKernelHAPI + 60 bytes
    KERNEL!NKHandleCall(unsigned long 0x00000000, _DHCALL_STRUCT * 0x00000000)  line 1983 + 40 bytes
    K.COREDLL!DirectHandleCall(unsigned long 0x00000007)  line 73 + 24 bytes
    K.COREDLL!xxx_DeviceIoControl(void * 0x00e70003, unsigned long 0x002a0048, void * 0xd02bf204, unsigned long 0x00000008, void * 0x00000000, unsigned long 0x00000000, unsigned long * 0x00000000, _OVERLAPPED * 0x00000000)  line 32 + 84 bytes
    DEVMGR!DevicePostInit(unsigned short * 0xd02bf7f4, unsigned long 0x002a0048, void * 0xd0046d00, const unsigned short * 0xd02bfb80)  line 1048 + 52 bytes
    DEVMGR!I_ActivateDeviceEx(const unsigned short * 0xd02bfb80, const _REGINI * 0xd02bfd84, unsigned long 0x00000001, void * 0x00000000)  line 1768
    DEVMGR!DM_ActivateDeviceEx(const unsigned short * 0xd02bfb80, const _REGINI * 0xd02bfd84, unsigned long 0x00000001, void * 0x00000000)  line 110 + 20 bytes
    K.COREDLL!xxx_ActivateDeviceEx(const unsigned short * 0xd02bfb80, const void * 0xd02bfd84, unsigned long 0x00000001, void * 0x00000000)  line 59 + 40 bytes
    DEVMGR!InitDevices(const unsigned short * 0xc04e48f8)  line 2039
    DEVMGR!DevloadInit()  line 2064
    DEVMGR!StartDeviceManager(HINSTANCE__ * 0x8c15509c, HINSTANCE__ * 0x00000000, unsigned short * 0x00000000, int 0x00000000)  line 536
    DEVICE!DevMainEntry(HINSTANCE__ * 0x8c15509c)  line 67 + 20 bytes
    K.COREDLL!ThreadBaseFunc(unsigned long (void *)* 0xc04d1120, void * 0x8c15509c)  line 1131 + 16 bytes

    OS prints Log:

    ***********

    BSP Clock Configuration:
        CKIH        =   22579200 Hz
        PLL1        =  600000000 Hz
        PLL2        =  665000000 Hz
        PLL3        =  216000000 Hz
        LP_APM      =   24000000 Hz
        ARM         =  600000000 Hz
        AXI_A       =  166250000 Hz
        AXI_B       =  133000000 Hz
        EMI_SLOW    =  133000000 Hz
        AHB         =  133000000 Hz
        IPG         =   66500000 Hz
        PERCLK      =    8000000 Hz
        CKIL_SYNC   =      32768 Hz
        DDR         =  150000000 Hz
        ARM_AXI     =  166250000 Hz
        IPU_HSP     =  133000000 Hz
        VPU_AXI     =  166250000 Hz
        GPU         =  166250000 Hz
        GPU2D       =  166250000 Hz
        DEBUG_APB   =  166250000 Hz
        ENFC        =   33250000 Hz
        USBOH3      =   66500000 Hz
        ESDHC1      =   47500000 Hz
        ESDHC2      =   47500000 Hz
        ESDHC3      =   47500000 Hz
        ESDHC4      =   47500000 Hz
        UART        =   24000000 Hz
        SSI1        =    5644800 Hz
        SSI2        =    5644800 Hz
        SSI3        =    5644800 Hz
        SSI_EXT1    =   10285714 Hz
        SSI_EXT2    =   10285714 Hz
        USB_PHY     =   24000000 Hz
        TVE_216_54  =  216000000 Hz
        DI          =   27000000 Hz
        VPU_RCLK    =   24000000 Hz
        SPDIF0      =    1142857 Hz
        SPDIF1      =    1142857 Hz
        SLIMBUS     =   66500000 Hz
        SIM         =   66500000 Hz
        FIRI        =   24000000 Hz
        HSI2C       =   66500000 Hz
        SSI_LP_APM  =   22579200 Hz
        SPDIF_XTAL  =   24000000 Hz
        HSC1        =  216000000 Hz
        HSC2        =  216000000 Hz
        ESC         =   15428571 Hz
        CSI_MCLK1   =   24629629 Hz
        CSI_MCLK2   =   24629629 Hz
        ECSPI       =   66500000 Hz
        LPSR        =          0 Hz
        PGC         =   66500000 Hz
        OSC         =   24000000 Hz
        CKIH_CAMP1  =   22579200 Hz
        CKIH2_CAMP2 =          0 Hz
        CKIH2       =          0 Hz
        FPM         =   33554432 Hz
    Windows CE Kernel for ARM (Thumb Enabled) Built on Oct 20 2009 at 18:39:49
    ProcessorType=0c08  RevisD = ÂÅ.
    WARN: OALKitlInit: KITL Disabled
    Setting up softlog at 0x8c1fc000 for 0x800 entries
    Booting Windows CE version 6.00 for (ARM)
    &pTOC = 8145dc1c, pTOC = 813f7fcc, pTOC->ulRamFree = 81462000, MemForPT = 000010
    00
    Configuring: Primary pages: 44418, Secondary pages: 0, Filesystem pages = 5552

    Booting kernel with clean memory configuration:
    Memory Sections:
    [0] : start: 81464000, extension: 00016000, length: 0ad82000
    NKStartup done, starting up kernel.
    Windows CE KernelInit
    Reserve VM for kernel XIP DLls, first = c0010000, last = c0d60000
    g_pprcNK == 0x8145baa0
    Updated eptr->e32_vsize to = 0001f000
    Initializing Memory Mapped File Support
    Scheduling the first thread.
    Detecting VFP... VFP Found!
                               LoaderInit: Initialing loader
    Updated eptr->e32_vsize to = 0001f000
    Updated eptr->e32_vsize to = 000a3000
    Updated eptr->e32_vsize to = 00036000
    PGPOOL: Reserved 768 pages for Loader pool
    PGPOOL: Reserved 256 pages for File pool
    OSAXST0: Platform Name = i.MX51
    OSAXST1: >>> Loading Module 'kd.dll' (0x8C1D9B50) at address 0xC0010000-0xC00450
    00 in Process 'NK.EXE' (0x8145BAA0)
    KD: Starting kernel debugger software probe (KdStub) - KD API version 22
    OSAXST1: >>> Loading Module 'NK.EXE' (0x8145BAA0) at address 0x80200000-0x8021F0
    00 in Process 'NK.EXE' (0x8145BAA0)
    Message Queue support initialized, g_hMsgQHeap = d0080000
    OSAXST1: >>> Loading Module 'filesys.dll' (0x8C1B5B1C) at address 0xC01E0000-0xC
    0279000 in Process 'NK.EXE' (0x8145BAA0)
    OSAXST1: >>> Loading Module 'k.fpcrt.dll' (0x8C1B5C54) at address 0xC01C0000-0xC
    01D8000 in Process 'NK.EXE' (0x8145BAA0)
    OSAXST1: >>> Loading Module 'fsdmgr.dll' (0x8C1B5D9C) at address 0xC05F0000-0xC0
    636000 in Process 'NK.EXE' (0x8145BAA0)
    FSDMGR!DllMain: DLL_PROCESS_ATTACH
                                      CertMod.dll not found, using old OEM Trust Mod
    el
    FileSystem Starting - starting with clean file system
    OALIoCtlHalInitRTC(2006/1/1 12:0:0.000)
    FSDMGR!STOREMGR_Initialize
    FSDMGR!InitializeStoreAPI
    FSDMGR!MountTable_t::RegisterVolumeName: Registered "StoreMgr" at index 2FSDMGR!
    MountTable_t::RegisterVolume: Registered volume at index 2 (Name="StoreMgr", Mou
    ntFlags=0x1)FSDMGR!InitializeROMFileSystem: File System=ROM
    OSAXST1: >>> Loading Module 'romfsd.dll' (0x8C1792C4) at address 0xC0280000-0xC0
    287000 in Process 'NK.EXE' (0x8145BAA0)
    FSDMGR!MountTable_t::RegisterVolumeName: Registered "ROM" at index 3FSDMGR!Mount
    Table_t::RegisterVolume: Registered volume at index 3 (Name="ROM", MountFlags=0x
    71)FSVOL: Opening existing volume
    FSVOL: Volume heap already initialized
    FSREG: Mounted ROM portion of boot registry
    FSVOL: Creating clean virtual volume
    FSVOL: Initializing volume heap
    FSREG: Mounted RAM portion of boot registry
    FS: Creating signal event SYSTEM/DevMgrApiSetReady
    FS: Creating signal event SYSTEM/PowerManagerReady
    FS: Creating signal event SYSTEM/GweApiSetReady
    FS: Creating signal event ReleaseFSD
    FILESYS: Starting boot phase 0.
    FSDMGR!STOREMGR_StartBootPhase BootPhase=0 (PrevBootPhase=-1)
    FSDMGR: File security disabled.
    FSDMGR!AutoLoadFileSystems: CurrentBootPhase=0, LoadFlags=1
    FSDMGR!AutoLoadFileSystem: CurrentBootPhase=0, RootKey=System\StorageManager\Aut
    oLoad, FileSystem_t=ObjectStore
    FILESYS: RAM File System FSD_MountDisk registering folder "Object Store"
    FSDMGR!MountTable_t::RegisterVolumeName: Registered "Object Store" at index 4FSD
    MGR!MountTable_t::RegisterVolume: Registered volume at index 4 (Name="", MountFl
    ags=0x44)FSDMGR!AutoLoadFileSystem: CurrentBootPhase=0, RootKey=System\StorageMa
    nager\AutoLoad, FileSystem_t=NAND_Flash
    FSDMGR!AutoLoadBlockDevice: Auto-loading block driver from "DrivFSDMGR!PNPThread
    : Using PNPUnloadDelay of 4096
    FSDMGR!PNPThread: PNPThread starting!
    ers\BuiltIn\NAND_Flash"FSDMGR!MountStore: Failed opening new store "NAND_Flash";
     error=4319
    FSDMGR!StoreDisk_t::~StoreDisk_t: deleting store (D00450E0)FSDMGR!AutoLoadFileSy
    stems: Unable to auto-load HKLM\System\StorageManager\AutoLoad\NAND_Flash; error
    =4319FILESYS: Starting boot phase 1.
    FSDMGR!STOREMGR_StartBootPhase BootPhase=1 (PrevBootPhase=0)
    FSDMGR!AutoLoadFileSystems: CurrentBootPhase=1, LoadFlags=1
    FSDMGR!AutoLoadFileSystem: CurrentBootPhase=1, RootKey=System\StorageManager\Aut
    oLoad, FileSystem_t=Relfsd
    OSAXST1: >>> Loading Module 'relfsd.dll' (0x8C15FA2C) at address 0xC05C0000-0xC0
    5CF000 in Process 'NK.EXE' (0x8145BAA0)
    FILESYS: Starting device and waiting for boot file system.
    OSAXST1: >>> Loading Module 'device.dll' (0x8C15FE04) at address 0xC04D0000-0xC0
    4D5000 in Process 'NK.EXE' (0x8145BAA0)
    OSAXST1: >>> Loading Module 'devmgr.dll' (0x8C158300) at address 0xC04E0000-0xC0
    507000 in Process 'NK.EXE' (0x8145BAA0)
    OSAXST1: >>> Loading Module 'k.ceddk.dll' (0x8C158438) at address 0xC06F0000-0xC
    06FE000 in Process 'NK.EXE' (0x8145BAA0)
    OSAXST1: >>> Loading Module 'pm.dll' (0x8C158570) at address 0xC0530000-0xC053A0
    00 in Process 'NK.EXE' (0x8145BAA0)
    *** Power Manager: DLL_PROCESS_ATTACH - Current Process: 0x42, ID: 0x400002 ***
    *** DLL_PROCESS_ATTACH - Current Process: 0x42, ID: 0x400002 ***
    Filesys: Loaded device.dll
    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    +InitDeviceFileSystems
    FSDMGR!MountTable_t::RegisterVolumeName: Registered "$device" at index 5FSDMGR!M
    ountTable_t::RegisterVolume: Registered volume at index 5 (Name="$device", Mount
    Flags=0x1)FSDMGR!MountTable_t::RegisterVolumeName: Registered "$bus" at index 6F
    SDMGR!MountTable_t::RegisterVolume: Registered volume at index 6 (Name="$bus", M
    ountFlags=0x1)-InitDeviceFileSystems: status is 1
    Ceddk!CalibrateStallCounter: Enter
    Ceddk!CalibrateStallCounter: Could not find stall counter
    Ceddk!BeginCalibration: min(8001) max(8889)
    Ceddk!BeginCalibration: Elapsed is 8245
    Ceddk!BeginCalibration: Delay is 53
    +PmInit
    -PmInit: returning 1
    DEVICE!DevloadInit
    DEVICE!InitDevices: Root Key is Drivers\BuiltIn.
    DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\Prefix) returned
    2
    DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\BusPrefix) return
    ed 2
    OSAXST1: >>> Loading Module 'busenum.dll' (0x8C14F858) at address 0xC0520000-0xC
    052B000 in Process 'NK.EXE' (0x8145BAA0)
    DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\NAND_Flash\BusPre
    fix) returned 2
    OSAXST1: >>> Loading Module 'flashmdd.dll' (0x8C14FBF4) at address 0xC0660000-0x
    C068E000 in Process 'NK.EXE' (0x8145BAA0)
    Kernel DLL 'flashmdd.dll' needs thread creation/deletion notification
    OSAXST1: >>> Loading Module 'flashpdd_nand.dll' (0x8C144024) at address 0xC0BD00
    00-0xC0BE9000 in Process 'NK.EXE' (0x8145BAA0)
    OSAXST1: >>> Loading Module 'cspddk.dll' (0x8C14415C) at address 0xC0B90000-0xC0
    BA0000 in Process 'NK.EXE' (0x8145BAA0)
    BBT_ReadOperation : dwStartBlock = 0x3FA, SectorAddr = 0xFE82
    BBT_ReadOperation : dwStartBlock = 0x3FB, SectorAddr = 0xFEC2
    Uncorrectable ECC error found during read! CS = 0, PageAddr=0xed80, ECCResult=0x
    ffff.
    FmdWrapperPdd::IoControl - ReadPhysicalSectors() failed.
    FlashPdd::ReadPhysicalSectors failed for sectors (0xed80, 0x1).  Result = 31.
    Unknown: DEBUGCHK failed in file D:\Dublin2-2\private\winceos\DRIVERS\msflash\fl
    ashcommon\.\FlashPddHelper.cpp at line 300
      KdTrap: JIT debugging requested, waiting for OEM selection
      KdTrap: JIT debugging accepted
    Exception 'Data Abort' (4): Thread-Id=00aa0002(pth=8c1587c8), Proc-Id=00400002(p
    prc=8145baa0) 'NK.EXE', VM-active=00400002(pprc=8145baa0) 'NK.EXE'
    PC=80233d70(kitl.dll+0x00013d70) RA=8022b474(kitl.dll+0x0000b474) SP=d02ad5f0, B
    VA=00000010
    Recursively calling KDEnableInt(FALSE, psvdThread != NULL) 1 time(s). This OK if
     KdStub stumbling on its own BP.
      KdTrap: Exception in debugger, Addr=0x80233D70 -  attempting to recover
    RtlDispatchException: returning failure. Flags=0
    KPSLExceptionHandler: flags=1 ControlPc=c068770c
    RtlDispatchException: returning failure. Flags=1
    Recursively calling KDEnableInt(FALSE, psvdThread != NULL) 1 time(s). This OK if
     KdStub stumbling on its own BP.
      KdTrap: Exception in debugger, Addr=0xC068770C -  unable to recover

    Unhandled exception c0000005:
    Terminating thread 8c1587c8
    Secondary thread in proc 00400002 faulted, Exception code = c0000005, Exception
    Address = c068770c!
    Terminating Thread 00aa0002

    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    FILESYS: Waiting for device manager to signal BootPhase1 completion.
    FILESYS: Waiting for device manager to signal BootPhase1 completion.


    kiran reddy

    Wednesday, July 4, 2012 2:58 AM

All replies

  • Did you notice this: "Uncorrectable ECC error found during read!". This means that your flash contains an error that can't be corrected by ECC. Normally the block would be marked as "bad" and would be skipped next time but if there's already data in it and you're simply trying to read out this could cause the issue you are seeing. Try formatting the flash and reinitializing the BBT. Make sure you have setup the flash driver to match the BBT location of the flash (some put this in the first page, some in the last page of the block).

    Good luck,

    Michel Verhagen, eMVP
    Check out my blog: http://guruce.com/blog

    GuruCE
    Microsoft Embedded Partner
    http://guruce.com
    Consultancy, training and development services.

    Wednesday, July 4, 2012 3:27 AM
    Moderator