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.

Linux/DRA72: OMAPCONF unable to read MMC registers

Part Number: DRA72

Tool/software: Linux

Team

We are trying to read MMCHS_xx registers using omapconf, but we are getting

omapconf read 0x480B4114
[   58.369819] Unhandled fault: asynchronous external abort (0x1211) at 0x00000000
[   58.377163] pgd = c9625cc0
[   58.379878] [00000000] *pgd=89788003, *pmd=89763003, *pte=00000000


!!! OUPS... MEMORY ERROR @ 0x00000000 !!!
Are you sure that:
    MEMORY ADDRESS IS VALID?
    TARGETED MODULE IS CLOCKED?

or using

omapconf dump 0x480B4224 0x480B4228
[  930.918438] Unhandled fault: asynchronous external abort (0x1211) at 0x00000000
[  930.925783] pgd = cac49900
[  930.928498] [00000000] *pgd=8c981003, *pmd=896ae003, *pte=00000000


!!! OUPS... MEMORY ERROR @ 0x00000000 !!!
Are you sure that:
    MEMORY ADDRESS IS VALID?
    TARGETED MODULE IS CLOCKED?

Version information

OMAPCONF (rev v1.73-19-gbe8626b built Thu Sep 21 14:28:34 CDT 2017)
....

  Kernel:
    Version: 4.4.91-00045-g9b0e56f-dirty
    Author: christian@famar
    Toolchain: gcc version 4.9.x 20150123 (prerelease) (GCC)
    Type: #3 SMP PREEMPT
    Date: Fri Aug 17 10:56:07 -03 2018
....


We try several MMC1 and MMC2 registers with the same results. (MMC2 is working, our system is there)

We can get MCASP, DSS or any other registers values

Is there any constraint for using omapconf with MMCx?

Regards


 

  • Hi Christian,

    omapconf shouldn't have anything specific to MMC.

    This error means that the module is not clocked or the module is put in idle state by driver when not in use.
    Since MMC2 is working, my guess is that the module is in idle state and clocks are cut.


    You could try reading these registers when there is active usage of MMC2
    (or)
    Explicitly enable the clocks of MMC2 by setting CM_L3INIT_MMC2_CLKCTRL[1:0] to value 2 and read the registers.

    Regards,
    Vishal
  • Hi Vishal

    Thanks!
    Running at the same time dd if=/dev/zero of=pamela bs=16384 count=16384 for forcing MMC activity and omapconf, it works as expected

    Regards