Help: Eboot error when i process Hive Based Registry and ROM-only File System using  the MultiBin (BINFS) on SDHC iMx53SMD board basing WinCE7 OS

cancel
Showing results for 
Search instead for 
Did you mean: 

Help: Eboot error when i process Hive Based Registry and ROM-only File System using  the MultiBin (BINFS) on SDHC iMx53SMD board basing WinCE7 OS

Jump to solution
1,980 Views
Contributor III

Hi Everyone:

I really need  help when I process Hive Based Registry and ROM-only File System using the MultiBin (BINFS) on SDHC iMx53SMD board basing WinCE7 Os, SMD BSP version  1105.

I patched files and overwrited related files as described in the following URL which was created by Qiang.li:
https://community.freescale.com/message/280827#280827

I follow every step as detailed in the README.txt . After I sysgen  the project and burnt eboot.nb0 and xip.nb0 into SD card(Formatted in winxp using FAT32, partition size 512bytes) using follwing commond:
cfimager  -always-format  -f eboot.nb0 -d H -raw -offset 0x400
cfimager -f xip.nb0 -d H -raw -offset 0x120400

The system meets some errors in the boot phase (Eboot Output from UART lists as following , red color words are error points)
INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0xb
BSP Clock Configuration:
? ? OSC ? ? ? ? = ? 24000000 Hz
? ? PLL1 ? ? ? ?= ?800000000 Hz
? ? PLL2 ? ? ? ?= ?600000000 Hz
? ? PLL3 ? ? ? ?= ?400000000 Hz
? ? PLL4 ? ? ? ?= ?595000000 Hz
? ? LP_APM ? ? ?= ? 24000000 Hz
? ? ARM ? ? ? ? = ?800000000 Hz
? ? AXI_A ? ? ? = ?300000000 Hz
? ? AXI_B ? ? ? = ?200000000 Hz
? ? EMI_SLOW ? ?= ?120000000 Hz
? ? AHB ? ? ? ? = ?120000000 Hz
? ? IPG ? ? ? ? = ? 60000000 Hz
? ? PERCLK ? ? ?= ? ?8000000 Hz
? ? CKIL_SYNC ? = ? ? ?32768 Hz
? ? DDR ? ? ? ? = ?300000000 Hz
? ? ARM_AXI ? ? = ?200000000 Hz
? ? IPU_HSP ? ? = ?200000000 Hz
? ? VPU_AXI ? ? = ?200000000 Hz
? ? GPU ? ? ? ? = ?200000000 Hz
? ? GPU2D ? ? ? = ?200000000 Hz
? ? DEBUG_APB ? = ?200000000 Hz
? ? ENFC ? ? ? ?= ? 30000000 Hz
? ? USBOH3 ? ? ?= ? 66666666 Hz
? ? ESDHC1 ? ? ?= ?100000000 Hz
? ? ESDHC2 ? ? ?= ?100000000 Hz
? ? ESDHC3 ? ? ?= ?100000000 Hz
? ? ESDHC4 ? ? ?= ?100000000 Hz
? ? UART ? ? ? ?= ? 24000000 Hz
? ? SSI1 ? ? ? ?= ? ?6000000 Hz
? ? SSI2 ? ? ? ?= ? ?6000000 Hz
? ? SSI3 ? ? ? ?= ? ?6000000 Hz
? ? SSI_EXT1 ? ?= ? 24000000 Hz
? ? SSI_EXT2 ? ?= ? 19047619 Hz
? ? USB_PHY ? ? = ? 24000000 Hz
? ? TVE_216_54 ?= ?297500000 Hz
? ? DI0 ? ? ? ? = ? 50000000 Hz
? ? DI1 ? ? ? ? = ?297500000 Hz
? ? VPU_RCLK ? ?= ? 24000000 Hz
? ? SSI_LP_APM ?= ? 24000000 Hz
? ? SPDIF_XTAL ?= ? 24000000 Hz
? ? LDB_DIO ? ? = ?595000000 Hz
? ? LDB_DI1 ? ? = ?595000000 Hz
? ? SPDIF0 ? ? ?= ? ?1142857 Hz
? ? ESAI ? ? ? ?= ? ?3000000 Hz
? ? ESAI_HCKR ? = ? ? ? ? ?0 Hz
? ? ESAI_HCKT ? = ? ? ? ? ?0 Hz
? ? CAN ? ? ? ? = ? 60000000 Hz
? ? FIRI ? ? ? ?= ? 24000000 Hz
? ? CSI_MCLK1 ? = ? 25000000 Hz
? ? CSI_MCLK2 ? = ? 25000000 Hz
? ? ECSPI ? ? ? = ? 66666666 Hz
? ? LPSR ? ? ? ?= ? ? ? ? ?0 Hz
? ? PGC ? ? ? ? = ? ?7500000 Hz
? ? ASRC ? ? ? ?= ? 59500000 Hz
? ? IEEE_CEMX ? = ? 40000000 Hz
? ? CKIH ? ? ? ?= ? 22579200 Hz
? ? CKIH2 ? ? ? = ? ? ? ? ?0 Hz

Microsoft Windows CE Bootloader Common Library Version 1.4 Built Jul 10 2013 17:07:35
OALPmicI2cInit: Trying to init PMIC I2C Interface
OALPmicInit: Trying to init I2C Interface
DA9052 Mask Revision Code : 10, Trimming Release Code : 3
DA9052 ?r17 control d value : 16 ?
DA9052 ?r17 after ?control d value is : 0 ?
INFO: BoardID = 0x901.
INFO: EVK RevA board is not detected, switch ddr clock to 400MHz.
INFO: Increasing CPU clock to 1.0 GHz.
Microsoft Windows CE Ethernet Bootloader 1.0 for MX53 EVK (Jul 15 2013 09:34:58)
<<<<<don't init FEC ?here szj..
INFO: SBMR = 0x1046e95e.
INFO: ?Bootloader launched from SD.
<<<<<SDMMC_Init called here szj...
ESDHC[1] is being activated...
<<<<szj sdc config pins g_SDSlotIndex=0......szj?
?SDConfigPins, Set SD1_CD PIN(We don't use it in fact),and delete SD1_WP pin!
SD High Density card
SD: Switched to 4 bit mode
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x00010003
In sdboot.c ESDQueryPartitionSize failed and call SDHCreset()?
INFO: Initialized SD Card
- SDMMC_Init
<<<<<ATA_Init cancelled ?here szj...
NAND ID is 0xefefefef
NAND ID read out is 0xefefefef, doesn't meet 0xd52c which is expected.
Failed to initialize NandFmd.
WARNING: OEMPlatformInit: Failed to initialize NAND flash device.
SPIFMD_Init: Manufacturer ID = 0x0?
SPIFMD_Init: Manufacturer ID is not supported yet
WARNING: OEMPlatformInit: Failed to initialize SPI device.
SDHCLoadBootCFG called here ....szj
INFO: Loading boot configuration from SDHC
INFO: Successfully loaded boot configuration from SDHC
ERROR: LoadBootCFG: ConfigMagicNumber not correct. Expected = 0x1020304 ; Actual = 0xe3e030df.

Resetting factory default configuration...
SDHCStoreBootCFG store change called here ....szj
INFO: Storing boot configuration to SDHC
In sdfmd.c SDMMC_WriteSector called here ....szj?
SDHC_IsCardWriteProtected called here......szj
?SDHC_IsCardWriteProtected, RETAIL_FLAG_SZJ defined, always no card WP!
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x000E0011
In sdfmd.c SDHCSendCmdWaitResp enter else and ?failed ?....szj?
ERROR: Failed to update BOOT configuration
ERROR: ResetDefaultBootCFG: failed to store configuration to flash.
System ready!
Preparing for download...
Picture height:88.width:256
+SPI_INIT_LD9042
-SPI_INIT_LD9042

Press [ENTER] to download now or [SPACE] to cancel.

Initiating image download in 4 seconds.?
-----------------------------------------------------------------------------
Freescale iMX SOC Menu Item ??
-----------------------------------------------------------------------------
?[0] IP Address : 0.0.0.0
?[1] Set IP Mask : 0.0.0.0
?[2] Boot Delay : 4
?[3] DHCP : Enabled
?[4] Reset to Factory Default Configuration?
?[5] Select Boot Device : Disabled
?[6] Set MAC Address : ff-ff-ff-ff-ff-ff
?[7] Format OS NAND Region?
?[8] Format All NAND Regions?
?[9] Bootloader Shell?
?[I] KITL Work Mode : Interrupt
?[K] KITL Enable Mode : Enable
?[P] KITL Passive Mode : Disable
?[S] Save Settings?
?[D] Download Image Now?
?[L] Launch Existing Flash Resident Image Now?
?[E] Select Ether Device : FEC
?[M] MMC and SD Utilities : ESDHC[1] is activated
?[A] ATA Utilities?

?Selection: s
?
SDHCStoreBootCFG store change called here ....szj
INFO: Storing boot configuration to SDHC
In sdfmd.c SDMMC_WriteSector called here ....szj?
SDHC_IsCardWriteProtected called here......szj
?SDHC_IsCardWriteProtected, RETAIL_FLAG_SZJ defined, always no card WP!
SDHCCmdConfig: CDIHB set, can't Send Data Cmd!!
?Szj set SDHCCmdConfig: CDIHB set, can't Send Data Cmd ,return and cause failure.....!
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x000E0011
In sdfmd.c SDHCSendCmdWaitResp enter else and ?failed ?....szj?
ERROR: Failed to update BOOT configuration
ERROR: StoreBootCFG: failed to write configuration.

-----------------------------------------------------------------------------
Freescale iMX SOC Menu Item ??
-----------------------------------------------------------------------------
?[0] IP Address : 0.0.0.0
?[1] Set IP Mask : 0.0.0.0
?[2] Boot Delay : 4
?[3] DHCP : Enabled
?[4] Reset to Factory Default Configuration?
?[5] Select Boot Device : Disabled
?[6] Set MAC Address : ff-ff-ff-ff-ff-ff
?[7] Format OS NAND Region?
?[8] Format All NAND Regions?
?[9] Bootloader Shell?
?[I] KITL Work Mode : Interrupt
?[K] KITL Enable Mode : Enable
?[P] KITL Passive Mode : Disable
?[S] Save Settings?
?[D] Download Image Now?
?[L] Launch Existing Flash Resident Image Now?
?[E] Select Ether Device : FEC
?[M] MMC and SD Utilities : ESDHC[1] is activated
?[A] ATA Utilities?

?Selection:

=======================================================================================

Do you notice that : in eboot , it failed in function SDHCWaitEndCmdRespIntr In Esdhc.c,
this function is called by ESDQueryPartitionSize in sd.c for SD init . Below is the function's source codes.
static UINT32 SDHCWaitEndCmdRespIntr()
{
UINT32 sdhc_status = ESDHC_STATUS_FAILURE;
DWORD status = 0;
OALMSG(OAL_FUNC, (_T("+ SDHCWaitEndCmdRespIntr\r\n")));

while (!( (status = INREG32(&g_pESDHCReg->IRQSTAT)) & ?(CSP_BITFMASK(ESDHC_IRQSTAT_CC) | ESDHC_CMD_ERROR_BITS)));

/* Check whether the interrupt is an END_CMD_RESP ?
* or an error?
*/

if((status & CSP_BITFMASK(ESDHC_IRQSTAT_CC)) && ?!(status & ESDHC_CMD_ERROR_BITS) )
{
    sdhc_status = ESDHC_STATUS_PASS;
}
else
{
     RETAILMSG(RETAIL_FLAG_SZJ,(TEXT("In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj\r\n")));
     //sdhc_status = ESDHC_STATUS_PASS;
}
if(sdhc_status != ESDHC_STATUS_PASS)
{
      RETAILMSG(RETAIL_FLAG_SZJ, (_T("SDHCWaitEndCmdRespIntr: Error status: 0x%08X\r\n"), status));
}
else

    OALMSG(OAL_VERBOSE, (_T("OAL_VERBOSE SUCCESS szj, SDHCWaitEndCmdRespIntr: Error status: 0x%08X\r\n"), status));
}
   OALMSG(OAL_FUNC, (_T("- SDHCWaitEndCmdRespIntr\r\n")));
   return sdhc_status;
}


When I choose S and try to save the  eboot config into sd card , this funciton still failed .
Besides this , in funciton SDHCCmdConfig defined in esdhc.c, another thing happened : the  CDIHB is set, and can't Send Data Cmd which caused the SDHCCmdConfig failed.

 


I really don't know how to solve the problem, Would anyone  help me to fix it ?Thanks so much !

 

Attachments are related files and souce codes  in my project  ,if  need any other files please tell me and I will mail them to you , thanks again.!

 

Original Attachment has been moved to: RelatedFilesForHiveRegistry.rar.zip

Labels (2)
0 Kudos
1 Solution
87 Views
NXP Employee
NXP Employee

From your log "PID:00400002 TID:00520002 Unknown: DEBUGCHK failed in file d:\chelanrtm14\public\common\oak\drivers\fsd\fatutil\main\diskinterface.cpp at line 56"

diskinterface.cpp line 56 red is as followed:

BOOL CDiskInterface::WriteSectors (DWORD dwSector, LPBYTE lpBuf, DWORD dwNumSectors)
{
    SG_REQ sg;
    DWORD dwResult;
   
    sg.sr_start = dwSector;
    sg.sr_num_sec = dwNumSectors;
    sg.sr_num_sg = 1;
    sg.sr_status = ERROR_NOT_SUPPORTED;  // not used by ATADisk
    sg.sr_callback = NULL;
    sg.sr_sglist[0].sb_buf = lpBuf;
    sg.sr_sglist[0].sb_len = m_dwBytesPerSector * dwNumSectors;

    dwResult = DeviceIoControl(m_hVolume, DISK_IOCTL_WRITE, &sg, sizeof(sg),
        NULL, 0, NULL, NULL);

    if (!dwResult) {
        ASSERT(0);
        DEBUGMSG(ZONE_OUTPUT, (L"Write Sector failed (%d) when writing to Sector %d\r\n", sg.sr_status, dwSector));
        SetLastError(ERROR_WRITE_FAULT);
    }

    return dwResult;
}

That means your SD card can't be written, please check the SD write protect pin setting.

View solution in original post

0 Kudos
19 Replies
87 Views
NXP Employee
NXP Employee

Your SD card totally can work in EBoot, it is non business with "Hive Based Registry and ROM-only File System using  the MultiBin (BINFS)". You should check why your SDMMC card can't work first.

0 Kudos
87 Views
Contributor III

Hi Qiang.li

I changed another SD card and burnt eboot.nb0 、xip.nb0 into the new card , after power on I found that eboot can store configuration into SD card now , but when I choose l to load the xip.nb0,  errors occured,  see following message for details(red colors words are error infomation) . PS: Before loading xip.nb0. three partitions including BINFS  were created , and then the loading of NK  faild , so can you help to check the reason ? I really dont know what to do ,  Thanks so much !

INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0xb
BSP Clock Configuration:
    OSC         =   24000000 Hz
    PLL1        =  800000000 Hz
    PLL2        =  600000000 Hz
    PLL3        =  400000000 Hz
    PLL4        =  595000000 Hz
    LP_APM      =   24000000 Hz
    ARM         =  800000000 Hz
    AXI_A       =  300000000 Hz
    AXI_B       =  200000000 Hz
    EMI_SLOW    =  120000000 Hz
    AHB         =  120000000 Hz
    IPG         =   60000000 Hz
    PERCLK      =    8000000 Hz
    CKIL_SYNC   =      32768 Hz
    DDR         =  300000000 Hz
    ARM_AXI     =  200000000 Hz
    IPU_HSP     =  200000000 Hz
    VPU_AXI     =  200000000 Hz
    GPU         =  200000000 Hz
    GPU2D       =  200000000 Hz
    DEBUG_APB   =  200000000 Hz
    ENFC        =   30000000 Hz
    USBOH3      =   66666666 Hz
    ESDHC1      =  100000000 Hz
    ESDHC2      =  100000000 Hz
    ESDHC3      =  100000000 Hz
    ESDHC4      =  100000000 Hz
    UART        =   24000000 Hz
    SSI1        =    6000000 Hz
    SSI2        =    6000000 Hz
    SSI3        =    6000000 Hz
    SSI_EXT1    =   24000000 Hz
    SSI_EXT2    =   19047619 Hz
    USB_PHY     =   24000000 Hz
    TVE_216_54  =  297500000 Hz
    DI0         =   50000000 Hz
    DI1         =  297500000 Hz
    VPU_RCLK    =   24000000 Hz
    SSI_LP_APM  =   24000000 Hz
    SPDIF_XTAL  =   24000000 Hz
    LDB_DIO     =  595000000 Hz
    LDB_DI1     =  595000000 Hz
    SPDIF0      =    1142857 Hz
    ESAI        =    3000000 Hz
    ESAI_HCKR   =          0 Hz
    ESAI_HCKT   =          0 Hz
    CAN         =   60000000 Hz
    FIRI        =   24000000 Hz
    CSI_MCLK1   =   25000000 Hz
    CSI_MCLK2   =   25000000 Hz
    ECSPI       =   66666666 Hz
    LPSR        =          0 Hz
    PGC         =    7500000 Hz
    ASRC        =   59500000 Hz
    IEEE_CEMX   =   40000000 Hz
    CKIH        =   22579200 Hz
    CKIH2       =          0 Hz

Microsoft Windows CE Bootloader Common Library Version 1.4 Built Jul 10 2013 17:07:35
OALPmicI2cInit: Trying to init PMIC I2C Interface
OALPmicInit: Trying to init I2C Interface
DA9052 Mask Revision Code : 10, Trimming Release Code : 3
DA9052  r17 control d value : 16 
DA9052  r17 after  control d value is : 0 
INFO: BoardID = 0x901.
INFO: EVK RevA board is not detected, switch ddr clock to 400MHz.
INFO: Increasing CPU clock to 1.0 GHz.
Microsoft Windows CE Ethernet Bootloader 1.0 for MX53 EVK (Jul 15 2013 09:34:58)
<<<<<don't init FEC  here szj..
INFO: SBMR = 0x1046c95e.
INFO:  Bootloader launched from SD.
<<<<<SDMMC_Init called here szj...
ESDHC[1] is being activated...
<<<<szj sdc config pins g_SDSlotIndex=0......szj
SDConfigPins, Set SD1_CD PIN(We don't use it in fact),and delete SD1_WP pin!
<<<SDInterface_Init Succeed... szj
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
<<<SDMMC_card_software_reset Success szj...
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SD Low Density card
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
SD: Switched to 4 bit mode
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x00010003
In sdboot.c ESDQueryPartitionSize failed and call SDHCreset()
INFO: Initialized SD Card
- SDMMC_Init
<<<<<ATA_Init cancelled  here szj...
NAND ID is 0xefefefef
NAND ID read out is 0xefefefef, doesn't meet 0xd52c which is expected.
Failed to initialize NandFmd.
WARNING: OEMPlatformInit: Failed to initialize NAND flash device.
SPIFMD_Init: Manufacturer ID = 0x0
SPIFMD_Init: Manufacturer ID is not supported yet
WARNING: OEMPlatformInit: Failed to initialize SPI device.
SDHCLoadBootCFG called here ....szj
INFO: Loading boot configuration from SDHC
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
INFO: Successfully loaded boot configuration from SDHC
System ready!
Preparing for download...
Picture height:88.width:256
+SPI_INIT_LD9042
-SPI_INIT_LD9042

Press [ENTER] to launch image stored in SD/MMC or [SPACE] to cancel.

Initiating image launch in 4 seconds.
-----------------------------------------------------------------------------
Freescale iMX SOC Menu Item  
-----------------------------------------------------------------------------
[0] IP Address : 192.168.0.198
[1] Set IP Mask : 255.255.255.0
[2] Boot Delay : 4
[3] DHCP : Disabled
[4] Reset to Factory Default Configuration
[5] Select Boot Device : NK from SD/MMC
[6] Set MAC Address : 6-0-0-0-0-0
[7] Format OS NAND Region
[8] Format All NAND Regions
[9] Bootloader Shell
[I] KITL Work Mode : Interrupt
[K] KITL Enable Mode : Disable
[P] KITL Passive Mode : Disable
[S] Save Settings
[D] Download Image Now
[L] Launch Existing Flash Resident Image Now
[E] Select Ether Device : USB Serial
[M] MMC and SD Utilities : ESDHC[1] is activated
[A] ATA Utilities

Selection: s
SDHCStoreBootCFG store change called here ....szj
INFO: Storing boot configuration to SDHC
In sdfmd.c SDMMC_WriteSector called here ....szj
SDHC_IsCardWriteProtected called here......szj
SDHC_IsCardWriteProtected, RETAIL_FLAG_SZJ defined, always no card WP!
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000011
In sdfmd.c SDHCDataWrite called here dwNumSectors <=1 and success ....szj
INFO: Successfully stored boot configuration to SDHC

-----------------------------------------------------------------------------
Freescale iMX SOC Menu Item  
-----------------------------------------------------------------------------
[0] IP Address : 192.168.0.198
[1] Set IP Mask : 255.255.255.0
[2] Boot Delay : 4
[3] DHCP : Disabled
[4] Reset to Factory Default Configuration
[5] Select Boot Device : NK from SD/MMC
[6] Set MAC Address : 6-0-0-0-0-0
[7] Format OS NAND Region
[8] Format All NAND Regions
[9] Bootloader Shell
[I] KITL Work Mode : Interrupt
[K] KITL Enable Mode : Disable
[P] KITL Passive Mode : Disable
[S] Save Settings
[D] Download Image Now
[L] Launch Existing Flash Resident Image Now
[E] Select Ether Device : USB Serial
[M] MMC and SD Utilities : ESDHC[1] is activated
[A] ATA Utilities 
Selection: l
-BLMenu .
INFO: Using device name: 'MX530'
INFO: Reading NK image to SDHC (please wait)...
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
Card Capacity 1943552 (Kbytes)
In sdfmd.c SDMMC_WriteSector called here ....szj
SDHC_IsCardWriteProtected called here......szj
SDHC_IsCardWriteProtected, RETAIL_FLAG_SZJ defined, always no card WP!
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000011
In sdfmd.c SDHCDataWrite called here dwNumSectors <=1 and success ....szj
Successfully created 3 partitions
Boot Partition size = 1152 Kbytes, startSect = 0x2, totSect = 0x900.
BINFS Partition size = 67584 Kbytes, startSect = 0x902, totSect = 0x21000
File System Partition size = 1874815 Kbytes, startSect = 0x21902, totSect = 0x3936fe
INFO: Copying NK image to RAM address 0xa0200000
INFO: Copying NK image size 0x700000 BYTEs.
SDHCWaitEndCmdRespIntr SUCCESS szj, : Error status: 0x00000001
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x000E0001
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x000E0001
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x000E0001
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x000E0001
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x000E0001

0 Kudos
87 Views
NXP Employee
NXP Employee

I think there are some hardware issues on your board for SDHC.

You can modify the file "platform/common/src/soc/common_fsl_v3/inc/common_esdhc.h" to use low SD clock, in this case, the SD maybe can work even if the signal quality is poor.

Change from

#define ESDHC_MAX_CLOCK_RATE        52000000        // 52 MHz max

To

#define ESDHC_MAX_CLOCK_RATE        5000000        // 5 MHz max

87 Views
Contributor III

Dear Qiang.li
Thanks for your reply, you're really an expert , eboot  works fine after I changed the clock  from 52M Hz to 5Mz by your advice, it works fine and can load the kernel from sd card now.
But after jumping to image at 0x0 (physical 0x70200000), the kernel hang up after SRTC was reset. No error message nor any other output from uart anymore, it just hang up there.
According to previous successful starting (RAM registry kernel), it should load da9052 driver and initialize the da9052 after SRTC was reset.
I spent hours on checking related configuration but I found nothing which may cause this error.
So can you help me to check the issue? Thank you so much.(Related files  platform.reg、.pbxml、 .bib  are attached in top of this discussion )

Output before hang up:
INFO: Read is 100% complete
INFO: Copy of NK completed successfully
In Esdhc.c SDHCWaitEndCmdRespIntr failed ....szj
SDHCWaitEndCmdRespIntr: Error status: 0x00010001
Either card is not eSD2.1, or boot partition is not created yet
Download successful!  Jumping to image at 0x0 (physical 0x70200000)...
+SPI_PowerOff_LD9042
-SPI_PowerOff_LD9042

INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0xb
BSP Clock Configuration:
    OSC         =   24000000 Hz
    PLL1        = 1000000000 Hz
    PLL2        =  400000000 Hz
    PLL3        =  400000000 Hz
    PLL4        =  595000000 Hz
    LP_APM      =   24000000 Hz
    ARM         = 1000000000 Hz
    AXI_A       =  400000000 Hz
    AXI_B       =  200000000 Hz
    EMI_SLOW    =  133333333 Hz
    AHB         =  133333333 Hz
    IPG         =   66666666 Hz
    PERCLK      =    8000000 Hz
    CKIL_SYNC   =      32768 Hz
    DDR         =  400000000 Hz
    ARM_AXI     =  200000000 Hz
    IPU_HSP     =  200000000 Hz
    VPU_AXI     =  200000000 Hz
    GPU         =  200000000 Hz
    GPU2D       =  200000000 Hz
    DEBUG_APB   =  200000000 Hz
    ENFC        =   33333333 Hz
    USBOH3      =   66666666 Hz
    ESDHC1      =  100000000 Hz
    ESDHC2      =  100000000 Hz
    ESDHC3      =  100000000 Hz
    ESDHC4      =  100000000 Hz
    UART        =   24000000 Hz
    SSI1        =    6000000 Hz
    SSI2        =    6000000 Hz
    SSI3        =    6000000 Hz
    SSI_EXT1    =   24000000 Hz
    SSI_EXT2    =   19047619 Hz
    USB_PHY     =   24000000 Hz
    TVE_216_54  =  297500000 Hz
    DI0         =   50000000 Hz
    DI1         =  297500000 Hz
    VPU_RCLK    =   24000000 Hz
    SSI_LP_APM  =   24000000 Hz
    SPDIF_XTAL  =   24000000 Hz
    LDB_DIO     =  595000000 Hz
    LDB_DI1     =  595000000 Hz
    SPDIF0      =    1142857 Hz
    ESAI        =    3000000 Hz
    ESAI_HCKR   =          0 Hz
    ESAI_HCKT   =          0 Hz
    CAN         =   66666666 Hz
    FIRI        =   24000000 Hz
    CSI_MCLK1   =   25000000 Hz
    CSI_MCLK2   =   25000000 Hz
    ECSPI       =   66666666 Hz
    LPSR        =          0 Hz
    PGC         =    8333333 Hz
    ASRC        =   59500000 Hz
    IEEE_CEMX   =   40000000 Hz
    CKIH        =   22579200 Hz
    CKIH2       =          0 Hz
Windows CE Kernel for ARM (Thumb Enabled)
OEMInit:  silicon€蓵侕伭嵘?) 絽蓱% 侕伭徨僚?)PID:00400002 TID:00510002 OALIoCtlHalInitRTC(2006/1/1 12:0:0.000)
PID:00400002 TID:00510002 WARNING: SRTC was reset.  (Kernel hang up here no output anymore )

==================================================================================================
Previous RAM registry kernel successfull startup procedure  should like this :

    CSI_MCLK1   =   25000000 Hz
    CSI_MCLK2   =   25000000 Hz
    ECSPI       =   66666666 Hz
    LPSR        =          0 Hz
    PGC         =    8333333 Hz
    ASRC        =   59500000 Hz
    IEEE_CEMX   =   40000000 Hz
    CKIH        =   22579200 Hz
    CKIH2       =          0 Hz
Windows CE Kernel for ARM (Thumb Enabled)
OEMInit:  silicon€蓵賮鮼玲膳5) 絽蓱% 侕伭徨僚?)PID:00400002 TID:00510002 OALIoCtlHalInitRTC(2006/1/1 12:0:0.000)
PID:00400002 TID:00510002 WARNING: SRTC was reset.
PID:00400002 TID:00830006 SSCDrv:  Driver : I2C1:, DA9052Addr : 0x48, Baud : 100 KHz
PID:00400002 TID:00830006 +BatteryMDDInitialize
PID:00400002 TID:00830006 EH_Open: EH driver Opened.
PID:00400002 TID:00830006 BATPDD:BatteryPDDInitialize: Passed
PID:00400002 TID:00830006 GIO::GIO_Init: Set GPIO7_3 output mode, 1
PID:00400002 TID:00830006 GIO::GIO_Init: Set GPIO4_5 output mode, 0 szj for bluetooth
PID:00400002 TID:00830006 GIO::GIO_Init: Set GPIO4_10 output mode, 0 for bluetooth reset 
PID:00400002 TID:00830006 GIO::GIO_Init: Set GPIO4_10 output mode, 1 for bluetooth reset 
PID:00400002 TID:00830006 GIO::GIO_Init: Set GPIO3_1 high for beidou power
PID:00400002 TID:00830006 GIO::GIO_Init: Set GPIO1_13 interrupt mode, hardwareIRQ:141,sysIRQ:26
PID:00400002 TID:00830006 *********szj gkp init  called here **********
PID:00400002 TID:00830006 CreateEvent success for user press event !
PID:00400002 TID:00830006 +BSPBacklightInitialize
PID:00400002 TID:00830006 -BSPBacklightInitialize
PID:00400002 TID:00830006 ConfigOTGHost BoardId = 0x901
PID:00400002 TID:00830006 Common InitializeHost1Mux set GPIO7-8 to high for SMD_R2(LCB_R2)
PID:00400002 TID:00830006 Common InitializeHost1Mux set GPIO6-12 to high for SMD_R2(LCB_R2)
PID:00400002 TID:00830006 ***********in 233PpClass PpClass::PpInit: Opening IPU_BASE handle success...

0 Kudos
87 Views
NXP Employee
NXP Employee

I think you can use debug build for your WinCE image, in this way there will be more debug messages to show why it hangs up.

By the way, I don't think the BINFS on SDHC solution can work on your board, your board's SDHC access is not stable, I think you should identify and fix this hardware issue first.

87 Views
Contributor III

Hi Qiang.li

I tried the debug build of my project many times , but it failed dure to some strange reasons which we are not able to  solve . Besides, the  hardware designers

are checking the sd card signals by your advice.

Regardless of all above, after the kernel has been loaded in my SMD board, what's the right orders and right outputs should I get,  What kernel do after the SRTC was reset?

Can you give me your SMD board's successfull bootup output after initializing the HIVE registry? 

Attachments are my project's build.log 、boot.hv 、user.hv and default.hv , together with the platform.reg and .bib files attached before , is there anything  wrong  in you opinion ? I doubt that there maybe something wrong in my configuration , but I couldn't find them out, can you help to check ? Thank you so much  for your help again. 

0 Kudos
87 Views
NXP Employee
NXP Employee

Only debug building image is helpful to identify the failure.

From your debug build log, the build failure happens on pwrbutton.dl, you can remove this driver and re-try.

0 Kudos
87 Views
Contributor III

Hi Qiang.li

We fixed several debug errors and try to debug build of my project.
Now we meet an error saying this :
 
Failed to find a range for data of size 7768478
Error: Ran out of space in ROM for simsun.ac3
size 7768478
Fatal error hit, exiting...
E:\WINCE7.0_Here\public\common\oak\misc\makeimg.proj(680,5): error MSB3073: 命令“romimage E:\WINCE7.0_Here\osdesigns\iMX53_ZKY_Mobility\RelDir\Freescale_i_MX53_SMD_ARMV7_Debug\ce.bib  ”已退出,返回值为 1。
已完成生成项目“E:\WINCE7.0_Here\public\common\oak\misc\makeimg.proj”(默认目标) -- 失败。


I think the size of xip.nb0 or the BinFS size set in my project is not big enough .
So what should I do to change the size of kernel and BinFs ?  Thanks a lot for your help.

Attachment is the build log for reference, thank you.

0 Kudos
87 Views
NXP Employee
NXP Employee

The image size was defined in config.bib and image_cfg.h.

I think for modifying the WinCE image size is a basic knowledge for WinCE engineer, if you don't know it, you can search and study it in WinCE help document.

0 Kudos
87 Views
Contributor III

Dear Qiang:

       After some changes and successful debug build of my project ,  I burnt new xip.nb0 into sd card and power on the board ,  from the new output , it seems that the BinFs works now, but there are still some errors , I tried to search the erros but found nothing can help .  Can you help me to check  what is wrong ? Thank you so much.

Debug  output  before hang  up  is attatched in the txt file for reference , thanks .

0 Kudos
88 Views
NXP Employee
NXP Employee

From your log "PID:00400002 TID:00520002 Unknown: DEBUGCHK failed in file d:\chelanrtm14\public\common\oak\drivers\fsd\fatutil\main\diskinterface.cpp at line 56"

diskinterface.cpp line 56 red is as followed:

BOOL CDiskInterface::WriteSectors (DWORD dwSector, LPBYTE lpBuf, DWORD dwNumSectors)
{
    SG_REQ sg;
    DWORD dwResult;
   
    sg.sr_start = dwSector;
    sg.sr_num_sec = dwNumSectors;
    sg.sr_num_sg = 1;
    sg.sr_status = ERROR_NOT_SUPPORTED;  // not used by ATADisk
    sg.sr_callback = NULL;
    sg.sr_sglist[0].sb_buf = lpBuf;
    sg.sr_sglist[0].sb_len = m_dwBytesPerSector * dwNumSectors;

    dwResult = DeviceIoControl(m_hVolume, DISK_IOCTL_WRITE, &sg, sizeof(sg),
        NULL, 0, NULL, NULL);

    if (!dwResult) {
        ASSERT(0);
        DEBUGMSG(ZONE_OUTPUT, (L"Write Sector failed (%d) when writing to Sector %d\r\n", sg.sr_status, dwSector));
        SetLastError(ERROR_WRITE_FAULT);
    }

    return dwResult;
}

That means your SD card can't be written, please check the SD write protect pin setting.

View solution in original post

0 Kudos
87 Views
Contributor V

Hi Qiang_FSL , I have followed completely the guide / patch to implement Multibinfs. I'm implementing this on SDHC.

But i'm facing data abort exception. I built in debug mode.

Below is the log. Can you please help me to solve this error? Where i'm going wrong ? :smileycry:

Windows CE Kernel for ARM (Thumb Enabled) Built on Mar 31 2014 at 17:35:09

ProcessorType=0c09  Revision=10 CpuId=0x412fc09a

OEMAddressTable = 80201424

PL310 ID = 0x410000c7

L2 cache enabled

OEMInit:  silicon rev = 0x13

BoardID = 0xffff.

WARN: OALKitlInit: KITL Disabled

SMP support disabled

Initializing VFP, FPSID=41033094

-OEMInit

NKStartup done, starting up kernel. nCpus = 1

Windows CE KernelInit

Booting Windows CE version 7.00 for (ARM)

Memory Configuring: Total pages: 226943, Filesystem pages = 28367

Booting kernel with clean memory configuration:

Total Memory Sections:4

[0] (static): start: 8097d000, extension/attributes: 0003e000, length: 0f67f000

[1] (dynamic): start: 00280000, extension/attributes: 00040800, length: 10000000

[2] (dynamic): start: 00380000, extension/attributes: 00040800, length: 10000000

[3] (dynamic): start: 00480000, extension/attributes: 00020800, length: 08000000

Scheduling the first thread.

PID:00400002 TID:00410002 PGPOOL: Reserved 768 pages for Loader pool

PID:00400002 TID:00410002 PGPOOL: Reserved 256 pages for File pool

PID:00400002 TID:00410002 OSAXST0: Platform Name = i.MX6Q SABREAuto

PID:00400002 TID:00410002 OSAXST1: >>> Loading Module 'kd.dll' (0xC080209C) at address 0xEFFE0000-0xEFFFE000 in Process 'NK.EXE' (0x8095FAD0)

PID:00400002 TID:00410002 KD: Starting kernel debugger software probe (KdStub) - KD API version 27

PID:00400002 TID:00410002 OSAXST1: >>> Loading Module 'NK.EXE' (0x8095FAD0) at address 0x80200000-0x80230000 in Process 'NK.EXE' (0x8095FAD0)

PID:00400002 TID:00410002 Message Queue support initialized, g_hMsgQHeap = c48c0010

PID:00400002 TID:00500002 OSAXST1: >>> Loading Module 'filesys.dll' (0xC080296C) at address 0xEFD20000-0xEFDD0000 in Process 'NK.EXE' (0x8095FAD0)

PID:00400002 TID:00500002 OSAXST1: >>> Loading Module 'fsdmgr.dll' (0xC0802AA4) at address 0xEFC40000-0xEFC95000 in Process 'NK.EXE' (0x8095FAD0)

PID:00400002 TID:00520002 FileSystem Starting - starting with clean file system

PID:00400002 TID:00520002 OALIoCtlHalInitRTC(2006/1/1 12:0:0.000)

PID:00400002 TID:00520002 WARNING: SNVS was reset.

PID:00400002 TID:00520002 OSAXST1: >>> Loading Module 'romfsd.dll' (0xC0803120) at address 0xEFD10000-0xEFD17000 in Process 'NK.EXE' (0x8095FAD0)

PID:00400002 TID:00520002 FSDMGR!MountStore: Failed opening store; error=126

PID:00400002 TID:00520002 FSDMGR!MountStore: Failed mounting store "SDMMC"

PID:00400002 TID:00520002 FSDMGR!AutoLoadFileSystems: Unable to auto-load HKLM\System\StorageManager\AutoLoad\SDMMC; error=126PID:00400002 TID:00520002 NK Kernel: DEBUGCHK failed in file d:\bt\1581\private\winceos\coreos\nk\kernel\kmisc.c at line 1574

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @802f0e84 Ignored.

PID:00400002 TID:00520002 NK Kernel: DEBUGCHK failed in file d:\bt\1581\private\winceos\coreos\nk\kernel\kmisc.c at line 1581

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @802f0f48 Ignored.

PID:00400002 TID:00520002 NK Kernel: DEBUGCHK failed in file d:\bt\1581\private\winceos\coreos\nk\kernel\kmisc.c at line 1585

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @802f0fe0 Ignored.

PID:00400002 TID:00520002 Coredll: DEBUGCHK failed in file d:\bt\1582\private\winceos\coreos\core\locale\coreloc\nlsapi.c at line 632

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @efea5c94 Ignored.

PID:00400002 TID:00520002 Exception 'Data Abort' (0x4): Thread-Id=00520002(pth=c0802d5c), Proc-Id=00400002(pprc=8095fad0) 'NK.EXE', VM-active=00400002(pprc=8095fad0) 'NK.EXE'

PID:00400002 TID:00520002 PC=efeef364(k.coredll.dll+0x000ef364) RA=efea5cac(k.coredll.dll+0x000a5cac) SP=c48ff7e8, BVA=00000000

PID:00400002 TID:00520002 Filesys faulted trying to initialize registry dirty, trying clean...

PID:00400002 TID:00520002 ERROR: d:\bt\1581\private\winceos\coreos\filesys\heap\volume.c line 931: PID:00400002 TID:00520002 FSVOL: Unable to mount heap - another heap with same guid already mounted

PID:00400002 TID:00520002 ERROR: d:\bt\1581\private\winceos\coreos\filesys\reg\reghive\registry.c line 818: PID:00400002 TID:00520002 FSREG: Unable to mount boot hive from ROM

PID:00400002 TID:00520002 FSREG: Unable to load system registry!  Registry will be unavailable.

PID:00400002 TID:00520002 FileSys: DEBUGCHK failed in file d:\bt\1581\private\winceos\coreos\filesys\reg\reghive\registry.c at line 1172

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @efd5c410 Ignored.

PID:00400002 TID:00520002 FileSys: DEBUGCHK failed in file d:\bt\1577\private\winceos\coreos\filesys\eventlog\eventlogapi.cpp at line 1151

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @efd416bc Ignored.

PID:00400002 TID:00520002 ERROR: d:\chelanrtm14\private\winceos\coreos\filesys\dbase\dbvolume.c line 41: PID:00400002 TID:00520002 FILESYS!MountSystemDBVolume: no boot file system!PID:00400002 TID:00520002 FILESYS-RNG::WriteSeedFile failed

                                                                               PID:00400002 TID:00520002 Unable to read Dynamic DST information for time zone Pacific Standard Time.

PID:00400002 TID:00520002 NK Kernel: DEBUGCHK failed in file d:\bt\1581\private\winceos\coreos\nk\kernel\kmisc.c at line 1574

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @802f0e84 Ignored.

PID:00400002 TID:00520002 NK Kernel: DEBUGCHK failed in file d:\bt\1581\private\winceos\coreos\nk\kernel\kmisc.c at line 1581

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @802f0f48 Ignored.

PID:00400002 TID:00520002 NK Kernel: DEBUGCHK failed in file d:\bt\1581\private\winceos\coreos\nk\kernel\kmisc.c at line 1585

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @802f0fe0 Ignored.

PID:00400002 TID:00520002 Coredll: DEBUGCHK failed in file d:\bt\1582\private\winceos\coreos\core\locale\coreloc\nlsapi.c at line 632

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002 DEBUG_BREAK @efea5c94 Ignored.

PID:00400002 TID:00520002 Exception 'Data Abort' (0x4): Thread-Id=00520002(pth=c0802d5c), Proc-Id=00400002(pprc=8095fad0) 'NK.EXE', VM-active=00400002(pprc=8095fad0) 'NK.EXE'

PID:00400002 TID:00520002 PC=efeef364(k.coredll.dll+0x000ef364) RA=efea5cac(k.coredll.dll+0x000a5cac) SP=c48ffc00, BVA=00000000

PID:00400002 TID:00520002 RtlDispatchException: returning failure. Flags=0

  KdTrap: JIT debugging requested, waiting for OEM selection

  KdTrap: JIT debugging accepted

!KITLRegisterDfltClient called before KitlInit. KITLGlobalState=00000080

PID:00400002 TID:00520002

Unhandled exception c0000005:

PID:00400002 TID:00520002 Secondary thread in proc 00400002 faulted, Exception code = c0000005, Exception Address = efeef364!

PID:00400002 TID:00520002 Terminating thread c0802d5c

Thanks & regards,

Keshava G N

0 Kudos
87 Views
NXP Employee
NXP Employee

Your log shows AutoLoad\SDMMC driver failed to be loaded. After "romfsd.dll" loaded, "binfs_sdmemory.dll" under "HKLM\System\StorageManager\AutoLoad\SDMMC" should be loaded.

PID:00400002 TID:00520002 FSDMGR!MountStore: Failed opening store; error=126

PID:00400002 TID:00520002 FSDMGR!MountStore: Failed mounting store "SDMMC"

PID:00400002 TID:00520002 FSDMGR!AutoLoadFileSystems: Unable to auto-load HKLM\System\StorageManager\AutoLoad\SDMMC; error=126

0 Kudos
87 Views
Contributor V

Hi Qiang_FSL , Thanks for the pointer.

Can you tell your ideas why it's failed load?

I have applied the registry patch:

IF BSP_SUPPORT_MULTIBIN

; HIVE BOOT SECTION

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SDMMC]

  "DriverPath"="Drivers\\BlockDevice\\SDMMC"

  "LoadFlags"=dword:1

  "MountFlags"=dword:11

  "BootPhase"=dword:0

IF SYSGEN_FSREGHIVE

  "Flags"=dword:1000

ENDIF

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\ESDHC]

  "Dll"="usdhc.dll"

  "Prefix"="SHC"

  "Index"=dword:1

  ;"DisableDMA"=dword:1                                      ; Use this reg setting to disable both internal and external DMA

  "MaximumClockFrequency"=dword:3197500           ; 52 MHz max clock speed

  ;"WakeupSource"=dword:1                                  ; this will enable system wakeup when card is inserted or removed during suspend state

  "BootPhase"=dword:0

IF SYSGEN_FSREGHIVE

  "Flags"=dword:1000

ENDIF

  "Key"="Drivers\\BlockDevice\\ESDHC"

  "Name"="SHC1:"

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\SDBusDriver]

  "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"

IF SYSGEN_FSREGHIVE

  "Flags"=dword:1000

ENDIF

  "Key"="Drivers\\BlockDevice\\SDBusDriver"

  "Name"="SDC1:"

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\SDMMC]

  "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:2     ; 0 == D0, 1 == D1, etc.

  ;"DisablePowerManagement"=""  ; if value present, then disable (remove value to enable)

  "Profile"="SDMMC"

  "Removable"=dword:0

  "MountFlags"=dword:11

  "BootPhase"=dword:0

IF SYSGEN_FSREGHIVE

  "Flags"=dword:1000

ENDIF

; Bind BINFS to the block driver

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC]

  "DefaultFileSystem"="BINFS"

  "PartitionDriver"="mspart.dll"

  "AutoMount"=dword:1

  "AutoFormat"=dword:1

  "Folder"="Storage Card"

  "Name"="SDMMC Memory Card"

  "BootPhase"=dword:0

IF SYSGEN_FSREGHIVE

  "Flags"=dword:1000

ENDIF

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC\BINFS]

  "MountAsROM"=dword:1

  "MountHidden"=dword:1

  "MountPermanent"=dword:1

IF SYSGEN_FSREGHIVE

  "Flags"=dword:1000

ENDIF

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMMC\FATFS]

  "MountAsROM"=dword:0

  "MountHidden"=dword:0

  "DisableAutoFormat"=dword:0

  "FormatExfat"=dword:1

  "FormatFatVersion"=dword:20

  "FormatClusterSize"=dword:1000

  "FormatNumberOfFats"=dword:1

IF SYSGEN_FSREGHIVE

  "MountAsBootable"=dword:1

ENDIF

IF SYSGEN_FSROMONLY

  "MountAsRoot"=dword:1

ENDIF

IF SYSGEN_FSREGHIVE

[HKEY_LOCAL_MACHINE\init\BootVars]

  "ProfileDir"="\\Storage Card\\Documents and Settings"

  "SystemHive"="\\Storage Card\\Documents and Settings\\System.hv"

  "Flags"=dword:C

  "RegistryFlags"=dword:1

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CSPDDK]   

  "Flags"=dword:1000

ENDIF

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\ObjectStore]

IF SYSGEN_FSREGHIVE

  "MountAsBootable"=dword:0

ENDIF

IF SYSGEN_FSROMONLY

  "MountAsRoot"=dword:0

ENDIF

; END HIVE BOOT SECTION

But it's not loading... Where i'm going wrong?


(Actually I have not yet implemented "binfs_sdbus" driver. But it's not at all loading dll. So I guess it won't make any difference. Please advice)


Thanks & regards,

Keshava

Keshava G N

0 Kudos
87 Views
NXP Employee
NXP Employee

Please pay attention to your register setting of the dll names, in my original patch, they are all "binfs_xxx.dll", they are not technical issues. By the way, please don't ask questions on this already closed discussion. Thanks!

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\ESDHC]
  "Dll"="usdhc.dll"

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\SDBusDriver]
  "Dll"="sdbus.dll"

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\SDMMC]
  "Dll"="sdmemory.dll"

0 Kudos
87 Views
Contributor III

Hi Qiang:

      I solved the problem why Xip.nb0 for emmc hang up .

       For eMMC, index==3,   in bspesdhc.cpp , cardpresent 、slotchangestatus and  interupt  arrays are not properly set for SMD board ,  source codes for BINFS seem to work for  EVK borad,  or maybe my bsp for 53 SMD board isn't the newest one.Regards.

0 Kudos
87 Views
Contributor III

Hi Qiang:

   Our wince7 os using hive based registry can work now, usb related hardware also work well, thanks for your help.

   I have tested ip configuration and touchpanel calibration configuration , all changes can be saved into registry located in sd card without loss after reboot.

   I also have changed ESDHC_MAX_CLOCK_RATE to 20M and all work well,  but if this macro  is setted to 52M , eboot will fail in reading NK into sdhc, unresolved  hardware issue.

   I will do much test about the stability of the system and try to reduce the boot time cause it's a little long .

   Thanks again for your help.

0 Kudos
87 Views
Contributor III

Hi Qiang:

    Thanks for your relpy , you're quite right, the sd card's  writing protect pin"SD_WP" was not correctly configured .

    After we fixed that bug , the  iMX53 SMD board  can boot up  now  and  we can  see the WinCE7 desktop  .

    However, from the debug output , I found this error "FileSys: DEBUGCHK failed in file d:\chelanrtm14\private\winceos\coreos\filesys\reg\reghive\registry.c at line 1014" , we don't have  related source codes  and don't know what that error means.

    Besides, although  system can boot up now , the  USB  doesn't work and error messages come out when I plug in usb mouse(It  does work  well  before  when we use RAM based registry , this seems not be hardware problem) .

    We 're now working on this USB problem, if you know how to fix it or any advice about this ,  we'd really appretiate that,  thank you !   .

    Debug  output  is attatched in the txt file for reference , Thanks.

0 Kudos
87 Views
Contributor III

Dear Qiang.li

Sorry for replying to you so late cause i had been on business for two weeks.

0 Kudos