Hi, On 12/30/20 8:21 AM, Tim Harvey wrote: > Greetings, > > In 50b1a69cee0d ("ARM: dts: imx8m: add UHS or HS400/HS400ES > properties") u-boot dt props were added to enable UHS and HS400 on a > couple of IMX8MM boards including the imx8mm-evk and in the subsequent > patch enabled the config items. > > While I see this making a huge difference for eMMC performance in > U-Boot I find it doesn't do anything for microSD performance. > > The issue appears to be that sd_get_capabilities() is not > appropriately detecting UHS speeds on cards that appropriately detect > as SDR104/DDR50 in Linux: > > u-boot=> mmc info > Device: FSL_SDHC > Manufacturer ID: 1b > OEM: 534d > Name: 00000 > Bus Speed: 50000000 > Mode: SD High Speed (50MHz) > card capabilities: widths [4, 1] modes [MMC legacy, SD High Speed (50MHz)] > ^^^^ no SDR104 detected for this card
Did you enable MMC_UHS_SUPPORT? > host capabilities: widths [4, 1] modes [MMC legacy, MMC High Speed > (26MHz), SD High Speed (50MHz), MMC High Speed (52MHz), UHS DDR50 > (50MHz), UHS SDR104 (208MHz)] > Rd Block Len: 512 > SD version 3.0 > High Capacity: Yes > Capacity: 14.9 GiB > Bus Width: 4-bit > Erase Group Size: 512 Bytes > > The same card in Linux shows the following upon insertion and > performance tests show that it is operating at SDR104 speeds: > mmc1: new ultra high speed SDR104 SDHC card at address 0001 > > I haven't found very good documentation on the SD switch settings to > understand if something is wrong in the U-Boot implementation of of > sd_get_capabilities() and I suppose it also could be an issue in > sdhci-esdhc-imx.c. > > Any ideas where to look? > > Anyone see SDR104 cards being detected properly for other platforms? I remembered that SDR104 was working fine before. Will check whether it's working or not with my other targets. Best Regards, Jaehoon Chung > > Best regards, > > Tim >