SD Card commands failing after successful tuning

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

SD Card commands failing after successful tuning

1,710 次查看
brianpaiva
Contributor III

I have an LS1043ARDB and UHS-I SD Card.  When inserting the SD card I configure the CPLD to use 1.8V and the device starts tuning.  After finishing tuning successfully I successfully configure the SD Card as a SDR104 card.  Immediately after this I receive a bunch of SD commands that fail.  The command is to read a single block and it and every command afterwards fail with a CRC error and a timeout, until my code switches back to 3.3V mode and the SD Card is not visible.  What could be causing it?  Here is what I see:

ERROR CMD17, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD13, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD13, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD13, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD13, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD12, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD13, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD13, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD13, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
ERROR CMD13, IRQSTAT: CTOE|CCE AUTOCERR_SYSCTL2: UHSM(011b - SDR104 for SD)|SMPCLKSEL
Switched CPLD to 3.3V
ERROR CMD8, IRQSTAT: CC|CTOE AUTOCERR_SYSCTL2: SMPCLKSEL
SUCCESS CMD0, IRQSTAT: CC AUTOCERR_SYSCTL2: SMPCLKSEL
SUCCESS CMD8, IRQSTAT: CC AUTOCERR_SYSCTL2: SMPCLKSEL
SUCCESS CMD55, IRQSTAT: CC AUTOCERR_SYSCTL2: SMPCLKSEL
SUCCESS CMD41, IRQSTAT: CC AUTOCERR_SYSCTL2: SMPCLKSEL
SUCCESS CMD55, IRQSTAT: CC AUTOCERR_SYSCTL2: SMPCLKSEL
SUCCESS CMD41, IRQSTAT: CC AUTOCERR_SYSCTL2: SMPCLKSEL

标签 (1)
标记 (1)
0 项奖励
回复
2 回复数

1,164 次查看
yipingwang
NXP TechSupport
NXP TechSupport

Hello Brian Paiva,

There is hardware limitation on LS1043ARDB, you need fix the hardware to implement "sdhc_vs" volatge switch.

For the software, SDK 2.0 1703 release has already provided HS200/UHS-1 Linux driver, you need to add HS200/UHS-1 properties in eSDHC node to support these speed modes in driver. Please add the following in the file arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts.

+&esdhc {
+    mmc-hs200-1_8v;
+    sd-uhs-sdr104;
+    sd-uhs-sdr50;
+    sd-uhs-sdr25;
+    sd-uhs-sdr12;
+};
+

You could refer to arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts as an example.


Have a great day,
TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复

1,164 次查看
brianpaiva
Contributor III

Hi yipingwang, I was under the impression that sdhc_vs is only needed if you have an external source to swap to 1.8V.  On the LS1043ARDB this is done in the CPLD using CPLD_SOFT_MUX_ON.EVDD_CTRL_EN and CPLD_EVDD_SEL.

I do have SDR104 support because it is working on the LS1012A.

0 项奖励
回复