Hi ,
I'm trying to get UHS-1 card working on LS1043ardb. I have added the UHS mode in DTB file.
After I inserted the card, I could get card attached as SDR104, but looks it will fail at reading SD card and mount the partition.
I could see card in linux, but I'm not able to access the content.
[ 242.631787] mmc_sd_init_uhs_card:643: mmc execute tunning
[ 242.637184] mmc0: new ultra high speed SDR104 SDHC card at address 59b4
[ 242.644162] mmcblk0: mmc0:59b4 SRT 15.1 GiB
[ 242.649542] mmcblk0: p1 p2
[ 242.705812] mmcblk0: error -110 sending stop command, original cmd response 0x900, card st0
[ 242.788552] sdhci: Timeout waiting for Buffer Read Ready interrupt during tuning procedurek
[ 242.800112] mmc0: tuning execution failed: -5
[ 242.804475] mmcblk0: error -84 sending status command, retrying
[ 242.884551] sdhci: Timeout waiting for Buffer Read Ready interrupt during tuning procedurek
[ 242.896110] mmc0: tuning execution failed: -5
[ 242.900461] mmcblk0: error -5 sending status command, retrying
[ 242.906298] mmcblk0: error -84 sending status command, aborting
[ 253.040548] mmc0: Timeout waiting for hardware cmd interrupt.
[ 253.046283] sdhci: =========== REGISTER DUMP (mmc0)===========
[ 253.052104] sdhci: Sys addr: 0x00000000 | Version: 0x00002102
[ 253.057925] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 253.063745] sdhci: Argument: 0x000001aa | Trn mode: 0x00000000
[ 253.069565] sdhci: Present: 0x01fd0009 | Host ctl: 0x00000020
[ 253.075386] sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 253.081206] sdhci: Wake-up: 0x00000000 | Clock: 0x000020f8
[ 253.087026] sdhci: Timeout: 0x00000000 | Int stat: 0x00000000
[ 253.092846] sdhci: Int enab: 0x007f1087 | Sig enab: 0x007f1083
[ 253.098667] sdhci: AC12 err: 0x00000000 | Slot int: 0x00002102
[ 253.104488] sdhci: Caps: 0x37fa0000 | Caps_1: 0x0000af00
[ 253.110308] sdhci: Cmd: 0x0000081a | Max curr: 0x00000000
[ 253.116128] sdhci: Host ctl2: 0x00000000
[ 253.120039] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x0000000000000000
[ 253.126553] sdhci: ===========================================
Does any one could give some hints?
Thanks.
Regards,
Tony Kong
The PROCTL[VOLT_SEL] bit changes the value of output signal SDHC_VS , to control the SD bus supply voltage for external card.
The SDHC_VS signal is not available on the LS1043ARDB. Pins are busy. A CPLD register, CPLD_EVDD_SEL, is used to select EVDD between 1.8 V and 3.3 V SD card I/O voltages on the LS1043ARDB board. See the LS1043ARDB reference Manual:
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
SDHC and SDXC need to be able to switch to 1.8V IO operation after a certain command
See the following documents about the ACMD41 and CMD11:
https://www.kingston.com/datasheets/SDCIT-specsheet-64gb_en.pdf
and
http://www.vikingtechnology.com/wp-content/uploads/2017/03/SDCard_Toshiba_Client.pdf
and
The LS1043a eSDHC uses the PROCTL[VOLT_SEL] bit for switching to 1.8V.
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Pavel,
Thanks for the reply. I know the card will send the CMD41 to switch the voltage and CMD 11 to trigger the switching sequence. I could see those commands and I checked PROCTL[VOLT_SEL] bit has been set to 1.8V. Then I could see the clock has been set to 208MHz, bandwidth has been set to 4 bits. The initial sequences are all done. Card failed at reading blocks. So I connected an oscilloscope to data line, it showed the voltage was still 3.3V. That's why I ask if I need to configure some thing on board to make the EVDD change to 1.8V automatically.
Have a great day,
Tony Kong
Hi Pavel,
Can I confirm 2 things before I create the ticket?
1. Does LS1043ardb support dynamic voltage switch from 3.3V to 1.8V? Or I have to manually set the DIP switch[3] 8 to switch the voltage?
2. If LS1043ardb supports dynamic voltage switch, what should I do to trigger dynamic voltage switch. Thanks.
Regards,
Tony
Perhaps your problem concerns an erratum of the LS1043a eSDHC.
Create please technical case about patch using for eSDHC erratum:
https://community.nxp.com/thread/381898
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------