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
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!
-----------------------------------------------------------------------------------------------------------------------
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.