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.

RTOS/PROCESSOR-SDK-AM57X: MMC card speed settings applying error on TI-RTOS SDK 05.01.00.11

Part Number: PROCESSOR-SDK-AM57X


Tool/software: TI-RTOS

Hello,

I'm using AM572x IDK board with TI-RTOS SDK 05.01.00.11.

I debugged my fatfs application that working with an onboard eMMC0 chip (MMC2 processor slot).

When I'm debugging it, I see, that MMCSD_iodelayFxn() function must select configured MMC mode. It almost correct selects the mmcMode variable value (what about DDR mode select with Pad loopback?). Then it calls BoardMmcCtrlPadConfig() function with that instance number (2 for MMC2 processor slot). OK, that's good.

In BoardMmcCtrlPadConfig() function: it calls BoardGetMmcCtrlPadPinmuxTable() function with non-changed instance argument (value 2 for MMC2 processor slot).

But function BoardGetMmcCtrlPadPinmuxTable() was defined by the pinmux tool and returns configuration modes for MMC3 chip (because of C language has array indexing from 0).

That's why boardGetPinmuxCfg() cannot find required config and skip if(ctrlPadCfg != NULL) body. But when I fixed indexing issue (I passed decremented instance number in BoardGetMmcCtrlPadPinmuxTable() function), rebuilt PDK and project.

But a project cannot config required speed config (default from your pinmux file for the board) and crashes with Data abort exception while returns from BoardCtrlPadIoDelayConfig() function (in my project).

I start only A15_0 core on the processor (without SMP mode).

How should I fix that bug? I need to speed up the eMMC interface.

Also, what about DDR mode select of MMC2 with Pad loopback config?

With regards,
Alex

  • Hi Alex,

    Please refer to your earlier post e2e.ti.com/.../776837, please use the P-SDK 5.2 and we already tested the EMMC access on AM572x GP EVM. You need to port this test to AM572x IDK EVM.

    In the CCS project creation file, it has:

    -ccs.linkFile "PDK_INSTALL_PATH/ti/drv/usb/example/bios/am57xx/usb_mmcsd_arm_am572x_evm.cfg"

    -ccs.setCompilerOptions "-c -mcpu=cortex-a15 -mtune=cortex-a15 -marm -mfloat-abi=hard -DevmAM572x -DSOC_AM572x -DUSB_DEVICE_EMMC -Dgcc -g -gstrict-dwarf -Wall -mno-unaligned-access -I${PDK_INSTALL_PATH}/ti/drv/usb -I${PDK_INSTALL_PATH}/ti/drv/usb/example/bios/ -I${PDK_INSTALL_PATH}/ti/drv/usb/example/common/ -I${PDK_INSTALL_PATH}/ti/drv/usb/example/usb_dev/msc/ -I${PDK_INSTALL_PATH}/ti/drv/usb/example/ramdisk -I${PDK_INSTALL_PATH} -I${PDK_INSTALL_PATH}/ti/drv/usb/src/usb_func/include -I${PDK_INSTALL_PATH}/ti/drv/usb/src/include " -rtsc.enableRtsc


    -ccs.setLinkerOptions " -lrdimon -lgcc -lm -nostartfiles -static -Wl,--gc-sections "
    -rtsc.setConfiguroOptions "-b ${PDK_INSTALL_PATH}/ti/build/am572x/config_am572x_a15.bld -DBOARD=evmAM572x"

    You need to port those AM572x GP EVM specific to IDKAM572x. The source code should be same. Please check and make sure the MMCSD instance number for EMMC is correct for IDK EVM.

    Let me know if you can test it. For DDR mode select of MMC2 with Pad loopback config, please open a new thread. Thanks!

    Regards, Eric