none
[SOLVED] Wince 7 eMMC2 is not working??? RRS feed

  • Question

  • Hello Friends,

    As, I am working on eMMC2, I have done pinmuxing according to our requirements and I after that I ahve simply adding the corresponding entries in the .reg file of SDHC as shown below - 

    HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC]
        "Prefix"="SHC"
        "Dll"="am33x_sdhc.dll"
        "Index"=dword:1
        "Order"=dword:$(LOAD_ORDER_SDHC)
        "PowerFlags"=dword:00000103         ; send pre/post device state changes
    ;    "MemBase"=multi_sz:"4809C000"
    ;    "MemLen"=multi_sz:"00000200"
    	
        "SDIOPriority"=dword:$(DRIVER_ISTPRI_SDHC_IO)
        "CDPriority"=dword:$(DRIVER_ISTPRI_SDHC_CD)
    
        "BaseClockFrequency"=dword:16e3600 ; override the max clock rate (24 MHz default)
    
        "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:6         ; this is the SD interrupt
        "CardInsertedState"=dword:0       ; not used for netra
    
    #if "$(_WINCEOSVER)" == "700"
        "FastPath_SDMEM"=dword:0           ; Fast Path Enabled for SD Mem
    #endif 
    ;
    ; Disable CardWPGPIO here to initialize sdhc.cpp/m_dwCardWPGPIO to MMC_NO_GPIO_CARD_WP (-1)
    ; and thus sdconroller.cpp GPIOGetBit/GPIOSetMode calls won't take effect 
    ;
    ;;;;;;;    "CardWPGPIO"=dword:7E             ; card R/W protection detection is done via GPIO_126
    ;;;;;;;    "CardWriteProtectedState"=dword:1 ; logical 1 means the card is write protected
        
        "SlotNumber"=dword:3
    
    ;;;;;;;;;;;;;;;;IF MMCHS1_LOW_VOLTAGE
    ;;;;;;;;;;;;;;;;    "LowVoltageSlot"=dword:1        ; 1 if MMC/SD/SDIO slot 1 is a low voltage (1.8V slot)
    ;;;;;;;;;;;;;;;;ENDIF
        
        "Sdio4BitDisable"=dword:0         ; 1 if SDIO cards must use 1 bit data path, 0 for 4 bit data path
        "SdMem4BitDisable"=dword:0        ; 1 if SD Memory cards must use 1 bit data path, 0 for 4 bit data path
    
        "DmaEnable"=dword:1         ; 1 to enable TX/RX DMA
    
        ; CE_DRIVER_POWER_MANAGEABLE_GENERIC_GUID, PMCLASS_PMEXT_GUID   
        "IClass"=multi_sz:"{A32942B7-920C-486b-B0E6-92A702A99B35}",
                          "{0AE2066F-89A2-4D70-8FC2-29AEFA68413C}"
    ENDIF BSP_SDHC

    And during the time of booting I am getting an error as shown below -

    ERROR: c:\wince700\platform\am335xphytec\src\csp\common_ti_v1\common_ti\sdhc\base\sdhc.cpp line 1404: 
       4441 PID:400002 TID:a80006 SDHCInitialize:: Error requesting pads

    Actually, in the source code of sdhc.cpp file. During the time of initialization its getting the device id  on the bases of device_slot(i our case the slot is 3 as mentioned in .reg file)

    and after getting the corresponding  device_id, another function is as RequestDevicePads(m_dwDeviceID) which tries to request the for padconfig for the corresponding device_id....

    But, it gets fail here?????

    From, pinmuxing point of view, it is very much fine but I have a small doubt on .reg entries...

    If some one already worked on it then please proceed with Knowledge Transfer ???????????



    Friday, November 28, 2014 7:21 AM

Answers

All replies

  • Friday, November 28, 2014 7:31 AM
  • Hello Friends,

    @GNKeshava, If you are talking about the pinmuxing that some pins are already used by some other purpose and I am trying to use the same pins for eMMC2 than I want discussion on this topic..... I have disabled eMMC2 all pimuxing entries in bsp_padcfg.h and bsp_padcfg.c but I did not comment the instance of eMMC2 in .reg file but I got the same error as -

    ERROR: c:\wince700\platform\am335xphytec\src\csp\common_ti_v1\common_ti\sdhc\base\sdhc.cpp line 1404: 
       4441 PID:400002 TID:a80006 SDHCInitialize:: Error requesting pads

    And, in second test case the corresponding entries are commented in the .c and .h file and I also commented in .reg file but this time I did not get any error... So, the issue is related the .reg entries that I have mentioned above/

    What is your comments on this ???????

    Friday, November 28, 2014 9:55 AM
  • Hello Friends,

    After doing lot of R&D and after solving lot of erros now the current status is as with the following error -

    8657 PID:400002 TID:af0006 OSAXST1: >>> Loading Module 'am33x_sdhc.dll' (0x9E42E894) at address 0xEE290000-0xEE2B1000 in Process 'NK.EXE' (0x869DFAD0)
    PB Debugger Loaded symbols for 'C:\WINCE700\OSDESIGNS\..\..\RELDIR\PHYTEC_AM335X_BSP_ARMV7_DEBUG\AM33X_SDHC.DLL'
       8660 PID:400002 TID:af0006 SDHCDGetHCFunctions: +Init
       8661 PID:400002 TID:af0006 SDHCDGetHCFunctions: -Init
       8662 PID:400002 TID:af0006 SDHC +Init
       8662 PID:400002 TID:af0006 SDHC +Init
       8663 PID:400002 TID:af0006 SDHC Active RegPath: Drivers\Active\06 
       8666 PID:400002 TID:af0006 The device id is 45 
       8667 PID:400002 TID:af0006 InitializeCardDetect: failed to initialze Interrupt g_dwCardDetectSysIntr!
       8669 PID:400002 TID:af0006 SDIO_InitDMA : RX DMA enabled
       8669 PID:400002 TID:af0006 SDHC -Init
       8670 PID:400002 TID:af0006 SDHC -Init

    One error is coming and up to so far I am unable to solve it and it is related to the Interrupt.. It means the entry what I am using in the .reg file related to "CardDetectGPIO"=dword:6 is wrong.. But my point is that how to confirm that which value it will use ?????

    Wednesday, December 3, 2014 5:29 AM