Bug 6312

Summary: Valleyisland SDIO: broken support for DDR50 capable SD cards
Product: [Build System, Metadata & Runtime] BSPs Reporter: falk bauer <f.bauer>
Component: bsps-meta-intelAssignee: Rebecca Chang <rebecca.swee.fun.chang>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: Medium CC: chiau.ee.chew, nitin.a.kamble, sgw, tom.zanussi
Version: 1.5   
Target Milestone: 1.6   
Hardware: Other   
OS: x86   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know
Attachments:
Description Flags
Kernel message with errors after inserting SD card.
none
disable UHS Mode for BayTrail SDIO controller none

Description falk bauer 2014-05-12 14:25:49 UTC
Created attachment 1943 [details]
Kernel message with errors after inserting SD card.

Overview:
Inserting a SanDisk class 10 UHS 1 card (SU08G) leads to error messages in the kernel log buffer. For example:

May 7 16:27:53 valleyisland-32 user.debug kernel: [ 125.254962] sdhci-pci 0000:00:12.0: setting latency timer to 64
May 7 16:27:55 valleyisland-32 user.info kernel: [ 127.510449] mmc1: new ultra high speed DDR50 SDHC card at address e624
May 7 16:27:55 valleyisland-32 user.info kernel: [ 127.511010] mmcblk0: mmc1:e624 SD08G 7.40 GiB
May 7 16:27:55 valleyisland-32 user.info kernel: [ 127.520193] mmcblk0: p1
May 7 16:27:55 valleyisland-32 user.err kernel: [ 127.526524] mmcblk0: error -84 transferring data, sector 15523712, nr 8, cmd response 0x900, card status 0xb00
May 7 16:27:55 valleyisland-32 user.warn kernel: [ 127.526534] mmcblk0: retrying using single block read
May 7 16:27:55 valleyisland-32 user.err kernel: [ 127.529319] mmcblk0: error -84 transferring data, sector 15523712, nr 8, cmd response 0x900, card status 0x0
May 7 16:27:55 valleyisland-32 user.warn kernel: [ 127.529329] blk_update_request: 773 callbacks suppressed
May 7 16:27:55 valleyisland-32 user.err kernel: [ 127.529335] end_request: I/O error, dev mmcblk0, sector 15523712
May 7 16:27:55 valleyisland-32 user.err kernel: [ 127.531980] mmcblk0: error -84 transferring data, sector 15523713, nr 7, cmd response 0x900, card status 0x0
May 7 16:27:55 valleyisland-32 user.err kernel: [ 127.531990] end_request: I/O error, dev mmcblk0, sector 15523713

Steps to Reproduce:
Create a sato image with the current dora-branch of yocto and the meta-intel layer for the valleyisland machine 32 bit.
The image boots up a Congatec Com Express Board Conga TCA with an sd card slot. The slot is connected to the SDIO controller embedded in the Atom E3825.
Formatting the SD card with an NTFS filesystem on a Win7 machine.
After image boot a tail -F /var/log/message and an inserting of the Sandisk SD card reveals the error messages.
Formatting the card with FAT32 makes no error messages after inserting.
An older SanDisk SD card (SD08G) produces error messages with both FAT32 and NTFS.
Another SD card (MemoryStar (8GB) produces no error messages at all.

Status of the different Cards:
Card 	                                FAT32 	NTFS
MemoryStar 8GB SDHC class10 	        ok 	ok
Sandisk Extreme SD08G (old version) 	NOK 	NOK
Sandisk Extreme SU08G (new version) 	ok 	NOK

Further informations:
The intel specifiction update from january 2014 (
http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/atom-Z36xxx-Z37xxx-spec-update.pdf) describes the entry VLT55 SD Card UHS - I Mode is Not Fully Supported.

Further informations fromt the maintainers:
A request to the maintainers of the meta-intel layer was answered which is also available on the meta-intel mailinglist of yocto:
https://lists.yoctoproject.org/pipermail/meta-intel/2014-May/002116.html
Comment 1 falk bauer 2014-05-13 14:26:29 UTC
Created attachment 1948 [details]
disable UHS Mode for BayTrail SDIO controller

A kernel patch for 3.10.35 which disables the UHS mode of the embedded SDIO controller in the E3825 (part of Atom Z3000 series).
No error messages in the kernel log afterwards.
Comment 2 Chew, Chiau Ee 2014-05-15 02:17:51 UTC
As mentioned in the mailing list thread, we have dropped the workaround patch previously as the fix is recommened to be added in BIOS instead. I need to check with internal BIOS team whether they have published the fix in the BIOS reference document to the external BIOS vendor.
Comment 3 Rebecca Chang 2014-06-17 00:43:13 UTC
As mentioned by Chiau Ee's comment previously, we have dropped the workaround patch as the fix is recommended to be implement in BIOS instead. IOTG BIOS team is now fixing this issue and we will post update once we got the fix. Thanks.
Comment 4 Rebecca Chang 2014-06-30 00:17:02 UTC
FYI, DDR50 mode is not supported in SD for Baytrail. In addition, it requires BIOS implementation in order to disable DDR50 mode. So, in this case, I will be closing this bug since there is no software fix required in this issue.
Comment 5 Rebecca Chang 2014-07-07 02:33:56 UTC
DDR50 mode is not supported in SD for Baytrail. In addition, it requires BIOS implementation in order to disable DDR50 mode.
Comment 6 Rebecca Chang 2014-07-07 02:34:44 UTC
DDR50 mode is not supported in SD for Baytrail. In addition, it requires BIOS implementation in order to disable DDR50 mode.
Comment 7 Rebecca Chang 2014-07-07 02:35:25 UTC
Change status to "WONT FIX"
Comment 8 falk bauer 2014-08-06 14:07:57 UTC
Congatec has recently published a bios update which fixed this issue now.
Two addtional options are available. SDR25 and DDR50 mode for enabling/disabling.
With enabled SDR25 and disabled DDR50 no more errors occurred while accessing "modern" SD cards.

Thanks for your help.