SD tuning Fails with MIMXRT1060.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SD tuning Fails with MIMXRT1060.

1,957 Views
Jack007
Contributor III

Hello,

I am trying to bring up the Zephyr on imxrt1060 with Murata module but on configuring sdio speed to SDR50 SDIO enumeration Fails by stating SD tunning failed.

Below is the error log:

[00:00:02.819,000] <dbg> usdhc: imx_usdhc_set_io: SDHC I/O: bus width 4, clock 400000Hz, card power ON, voltage 1.8V
[00:00:02.819,000] <err> sd: Raised card bus width to 4 bits
[00:00:02.819,000] <err> sd: Select and set bus speed
[00:00:02.835,000] <dbg> sd: sdio_set_bus_speed: Setting bus clock to: 100000000
[00:00:02.835,000] <dbg> usdhc: imx_usdhc_set_io: SDHC I/O: bus width 4, clock 100000000Hz, card power ON, voltage 1.8V
[00:00:02.836,000] <dbg> usdhc: imx_usdhc_set_io: BUS CLOCK: 99000000
[00:00:02.864,000] <err> usdhc: imx_usdhc_transfer USDHC_TransferNonBlocking kStatus_USDHC_ReTuningRequest error :6505
[00:00:02.864,000] <err> usdhc: imx_usdhc_execute_tuning imx_usdhc_transfer ret :-11
[00:00:02.864,000] <err> sd: SD tuning failed: -11

on further debug found that USDHC_TransferNonBlocking is failing by returns kStatus_USDHC_ReTuningRequest

Can please help in solving this issue.

NOTE: I don't see any issue on configuring SDR12 and SDR25

Labels (1)
0 Kudos
Reply
6 Replies

1,814 Views
Jack007
Contributor III

as of now I am  downgrading the speed to SDR25 with this firmware is loading but sometimes(1 out of 10 times) notice usdhc_transfer Failure with reason TRANSFER_CMD_FAILED at the multiple places(sdio_read_cccr, sdio_read_cis  and sdio_set_bus_speed). – this issue is seen across SDR50,SDR25 & SDR12 modes.
Can you please help me in resolving this issue.


I am using 2EA Murata module.

0 Kudos
Reply

1,918 Views
Jack007
Contributor III


I am configuring to SDR50 by adding the below line in the function :sdio_set_bus_speed() before the switch case

card->card_speed = SD_TIMING_SDR50;

I am using murata 2EA module..

0 Kudos
Reply

1,866 Views
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @Jack007,

I apologize but I don't quite understand where you are doing the modifications that you mention. I am currently looking at the SD driver "fsl_usdhc" for "sdio_set_bus_speed()" and don't see the function or the switch case you are referring to.

BR,
Edwin.

0 Kudos
Reply

1,850 Views
Jack007
Contributor III

I am modifying the SDIO speed in the file: zephyr/subsys/sd/sdio.c

Function : sdio_set_bus_speed(struct sd_card *card)

Below is the function call sequence

sdio_set_bus_speed()  -- sdhc_set_io()   -- imx_usdhc_set_io() -- USDHC_SetSdClock()

 

Finally USDHC_SetSdClock will get the parameter from the sdio_set_bus_speed

0 Kudos
Reply

1,931 Views
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @Jack007,

Could you please specify which Murata module you are currently using as well as the process you are using to set speed to SDR50 on it?

BR,
Edwin.

0 Kudos
Reply

1,847 Views
Jack007
Contributor III

In the Function sdio_set_bus_speed() i am doing below change to configure to SDR50

card->card_speed = SD_TIMING_SDR50;

0 Kudos
Reply