AnsweredAssumed Answered

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

Question asked by sun ajiang on Jul 16, 2013

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

Outcomes