LS1043ardb could not access SD card in UHS-1 mode

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

LS1043ardb could not access SD card in UHS-1 mode

1,704 Views
tkong
Contributor I

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

0 Kudos
Reply
5 Replies

1,377 Views
Pavel
NXP Employee
NXP Employee

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:

https://www.nxp.com/webapp/Download?colCode=LS1043ARDBRM&Parent_nodeId=1441121579998719223109&Parent...


Have a great day,
Pavel Chubakov

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

0 Kudos
Reply

1,377 Views
Pavel
NXP Employee
NXP Employee

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

 

http://downloadt.advantech.com/ProductFile/PIS/96FMMSDI-4G-ET-AT1/Product%20-%20Datasheet/96FMMSDI-4...

 

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

0 Kudos
Reply

1,377 Views
tkong
Contributor I

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

0 Kudos
Reply

1,377 Views
tkong
Contributor I

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

0 Kudos
Reply

1,377 Views
Pavel
NXP Employee
NXP Employee

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

0 Kudos
Reply