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.

BSP_WINCE_ARM_A8_02_30_00 for Beagleboard xM, Hang on kernel initial phase with Persistent Hive Registry Storage enabled

Other Parts Discussed in Thread: DM3730, OMAP3530

I ported BSP_WINCE_ARM_A8_02_30_00 to my Beagleboard xM Rev. B. But NK.bin Hang on kernel initial phase with Persistent Hive Registry Storage and Use SD or MMC card enabled in BSP catelog.

Someone give some clues? Here are logs from serial port:

--------------------------------------------------------------------------------------------------------------------------------------------

Texas Instruments Windows CE SD X-Loader for EVM 3730
Built Apr 10 2012 at 20:56:47
Version BSP_WINCE_ARM_A8 2.30.00.03
open ebootsd.nb0 file
Init HW: controller RST
SDCARD: requested speed 1000000, actual speed 1000000
SDCARD: requested speed 25000000, actual speed 19200000
jumping to ebootsd image

Microsoft Windows CE Bootloader Common Library Version 1.4 Built Apr 11 2012 15:09:48

Texas Instruments Windows CE EBOOT for OMAP35xx/37xx, Built Apr 10 2012 at 20:56:19
EBOOT Version 0.0, BSP BSP_WINCE_ARM_A8 2.30.00.03

TI OMAP3730 Version 0x00000011 (ES1.1)
TPS659XX Version 0x10 (ES1.1)
System ready!
Preparing for download...
INFO: Predownload....
Incorrect ECC type setting
NAND manufacturer 0 device 0 : no matching device found
ERROR: FMD_Init call failed!
Incorrect ECC type setting
NAND manufacturer 0 device 0 : no matching device found
ERROR: FMD_Init call failed!
WARN: Boot config wasn't found, using defaults
INFO: SW4 boot setting: 0x12
Incorrect ECC type setting
NAND manufacturer 0 device 0 : no matching device found

>>> Forcing cold boot (non-persistent registry and other data will be wiped) <<<
Hit space to enter configuration menu 5...
Hit space to enter configuration menu 4...
Hit space to enter configuration menu 3...

--------------------------------------------------------------------------------
 Main Menu
--------------------------------------------------------------------------------
 [1] Show Current Settings
 [2] Select Boot Device
 [3] Select KITL (Debug) Device
 [4] Network Settings
 [5] SDCard Settings
 [6] Set Device ID
 [7] Save Settings
 [8] Flash Management
 [9] Enable/Disable OAL Retail Messages
 [a] Select Display Resolution
 [b] Select OPP Mode
 [0] Exit and Continue

 Selection: 9
 Enable OAL Retail Messages [y/-]: y
 OAL Retail Messages enabled

--------------------------------------------------------------------------------
 Main Menu
--------------------------------------------------------------------------------
 [1] Show Current Settings
 [2] Select Boot Device
 [3] Select KITL (Debug) Device
 [4] Network Settings
 [5] SDCard Settings
 [6] Set Device ID
 [7] Save Settings
 [8] Flash Management
 [9] Enable/Disable OAL Retail Messages
 [a] Select Display Resolution
 [b] Select OPP Mode
 [0] Exit and Continue

 Selection: 0
Init HW: controller RST
SDCARD: requested speed 1000000, actual speed 1000000
SDCARD: requested speed 25000000, actual speed 19200000

BL_IMAGE_TYPE_BIN

Download file information:
-----------------------------------------------------------
[0]: Address=0x88000000  Length=0x04071768  Save=0x88000000
-----------------------------------------------------------
Download file type: 1
............................................................................................................................................................................................................................................................................................................................................................................rom_offset=0x0.
..ImageStart = 0x88000000, ImageLength = 0x4071768, LaunchAddr = 0x8800df80

Completed file(s):
-------------------------------------------------------------------------------
[0]: Address=0x88000000  Length=0x4071768  Name="" Target=RAM
ROMHDR at Address 88000044h
Launch Windows CE image by jumping to 0x8800df80...

Windows CE Kernel for ARM (Thumb Enabled)
OAL: CPU revision 0x11:DM3730
OAL: CPU L2 Aux register 0x400042
****Profiler Build****
---High Performance Frequency is 25999826 hz---
PID:00400002 TID:00410002 Compensating OPP1 for 63mV Orig nvalue:0x99e2c0 New nvalue:0x99b096
PID:00400002 TID:00410002 Compensating OPP2 for 63mV Orig nvalue:0x9a92fa New nvalue:0xaaf7d3
PID:00400002 TID:00410002 Compensating OPP3 for 75mV Orig nvalue:0xaad1b4 New nvalue:0xaab49b
PID:00400002 TID:00410002 Compensating OPP4 for 100mV Orig nvalue:0xaa9f90 New nvalue:0xab89f7
PID:00400002 TID:00410002 SetOpp to 3
PID:00400002 TID:01320006 SDHC: CPU revision 0x11
PID:00400002 TID:01320006 SDHC host controller initialize: m_fastPathSDIO:1 m_fastPathSDMEM:1

  • There might be numerous reasons why your image does not boot:

    1/ Nand flash driver enabled on a board that do not have NAND Flash device

    2/ Hive defined on the wrong storage content

    3/ SDCard driver not loaded during boot phase 1 -> Check driver flags in registry

    4/ SDCard dependent driver not loaded at boot phase 1 -> check all the SDCard driver dependency drivers flags in registry

    5/ OMAP Bus driver is loading the SDCard driver twice.

    Refer to the wiki for details on how to implement Hive based registry:

    http://processors.wiki.ti.com/index.php/Persistent_Registry_in_ARM-A8_BSP#SD.2FMMC_Persistent_Storage

  • 1/ Nand flash driver enabled on a board that do not have NAND Flash device

    checked.

    2/ Hive defined on the wrong storage content

    how can we check for that? Is there any other files needed on sd card, other than MLO/EBoot.nb0/NK.bin?

    3/ SDCard driver not loaded during boot phase 1 -> Check driver flags in registry

    checked

    4/ SDCard dependent driver not loaded at boot phase 1 -> check all the SDCard driver dependency drivers flags in registry

    checked

    5/ OMAP Bus driver is loading the SDCard driver twice.

    how can we check for that?

  • Have you followed http://processors.wiki.ti.com/index.php/Persistent_Registry_in_ARM-A8_BSP#SD.2FMMC_Persistent_Storage ?

    This gives you detailed steps for enabling Hive-based registry. You could also try with a debug image in order to get more debug traces and information on what might go wrong. If this works, you should get a "Documents and Settings" directory on the SD card that contains the registry as hidden .hv files.

  • Sorry for late of response.

    Yes we did check with the guide above and found TI already include those changes into the 2.30 release.

    One more clue -- I find there is a MMC/SD write protect pin on EVM_OMAP3530 platform :

    ; All rights reserved ADENEO EMBEDDED 2010
    ;-- SDIO host controller driver ------------------------------------------------
    ; HIVE BOOT SECTION
    ; @CESYSGEN IF CE_MODULES_SDBUS
    ;; @XIPREGION IF PACKAGE_OEMDRIVERS
    IF BSP_SDHC
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC]
        "Prefix"="SHC"
        "Dll"="omap_sdhc.dll"
        "Index"=dword:1
        "Order"=dword:21
        "PowerFlags"=dword:00000103         ; send pre/post device state changes
        "MemBase"=multi_sz:"4809C000"
        "MemLen"=multi_sz:"00000200"

        "SDIOPriority"=dword:d3
        "CDPriority"=dword:d4

    IF BSP_SDHIGHSPEEDSUPPORT_SDHC1
        "BaseClockFrequency"=dword:2DC6C00 ; override the max clock rate (48 MHz)
    ELSE
        "BaseClockFrequency"=dword:16e3600 ; override the max clock rate (24 MHz default)
    ENDIF

        "ReadWriteTimeout"=dword:1000   ; (0x1000 clock ticks default)
        "DTOTimeout"=dword:200          ; Data timeout in milliseconds - 512 ms default
     
        "WakeupSources"=dword:3            ; 0 - no wakeup, 1 - wakeup on SDIO,
                                        ; 2 - wakeup on card detect,
                                        ; 3 - wakeup on both

        "CardDetectGPIO"=dword:100       ; card insertion detection is GPIO_0 on Triton (256 + 0)
        "CardInsertedState"=dword:0     ; logical 0 means a card is inserted

        "CardWPGPIO"=dword:3F           ; card R/W protection detection is done via GPIO 63
        "CardWriteProtectedState"=dword:1 ; logical 1 means the card is write protected

    But beagleboard xM will not have this pin since it has micro SD/TF card support only. Should we modify into SDHC drivers to inhibit Write Protect check for Beagleboard xM?

  • BTW, I checked with the content of my micro SD card and had not find "Documents and Settings" directory on it.

  • Could you please tell me for what module we need to enable the retail message out? I tried to enable retail message in sdhc.h but can only get a flooding of sd send/receive commands during the booting.

  • Some progress today for the SDHC write protect issue:

    We inhibited write protect checking inside sdhc drivers today.  Then Beableboard xM boots successfully and a folder 'Windows' get created on micro SD card. There are 2 sub-folders under it -- 'Keys" and 'Registry", and system.hv hidden file was observed under 'Registry' folder.

    But we still can not get registry storage to work successfully between power cycling. We changed some settings through Control Panel|Volume&Sounds, select OK, and then select Suspend from wince Start icon.  And we find nothing get saved after a  power cycle to the board.

    Should we still missed some configurations or settings, to make wince registries to get saved and retrieved on micro SD card?

    weidong zhou said:

    Sorry for late of response.

    Yes we did check with the guide above and found TI already include those changes into the 2.30 release.

    One more clue -- I find there is a MMC/SD write protect pin on EVM_OMAP3530 platform :

    ; All rights reserved ADENEO EMBEDDED 2010
    ;-- SDIO host controller driver ------------------------------------------------
    ; HIVE BOOT SECTION
    ; @CESYSGEN IF CE_MODULES_SDBUS
    ;; @XIPREGION IF PACKAGE_OEMDRIVERS
    IF BSP_SDHC
    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC]
        "Prefix"="SHC"
        "Dll"="omap_sdhc.dll"
        "Index"=dword:1
        "Order"=dword:21
        "PowerFlags"=dword:00000103         ; send pre/post device state changes
        "MemBase"=multi_sz:"4809C000"
        "MemLen"=multi_sz:"00000200"

        "SDIOPriority"=dword:d3
        "CDPriority"=dword:d4

    IF BSP_SDHIGHSPEEDSUPPORT_SDHC1
        "BaseClockFrequency"=dword:2DC6C00 ; override the max clock rate (48 MHz)
    ELSE
        "BaseClockFrequency"=dword:16e3600 ; override the max clock rate (24 MHz default)
    ENDIF

        "ReadWriteTimeout"=dword:1000   ; (0x1000 clock ticks default)
        "DTOTimeout"=dword:200          ; Data timeout in milliseconds - 512 ms default
     
        "WakeupSources"=dword:3            ; 0 - no wakeup, 1 - wakeup on SDIO,
                                        ; 2 - wakeup on card detect,
                                        ; 3 - wakeup on both

        "CardDetectGPIO"=dword:100       ; card insertion detection is GPIO_0 on Triton (256 + 0)
        "CardInsertedState"=dword:0     ; logical 0 means a card is inserted

        "CardWPGPIO"=dword:3F           ; card R/W protection detection is done via GPIO 63
        "CardWriteProtectedState"=dword:1 ; logical 1 means the card is write protected

    But beagleboard xM will not have this pin since it has micro SD/TF card support only. Should we modify into SDHC drivers to inhibit Write Protect check for Beagleboard xM?