1 of 1 people found this helpful
I apologize that I don't know the exact answers to your questions. However, I know that the Avnet team did spend some time with SDIO Standard Speed Mode with PicoZed when we were debugging a cold temperature issue. I think there is some valuable information in the forum posts below.
Given that MicroZed and PicoZed are the same price, why not switch to PicoZed that already has the eMMC working?
Thanks for your reply!
During the project, a custom carrier board has been developed for the MicroZed (for an industrial application).
The setup works (firmware, software, ...), so switchting to PicoZed is not really the way to go.
The very last hardware hurdle still to overcome is to replace the SD boot with an QSPI+eMMC boot.
The MIO pins on the MicroZed are fully allocated, and the only way to connect Zynq-SDIO to eMMC is to use EMIO.
The Zynq supports this (see TRM), but this requires standard speed mode.
As the transfer speed is negociated at startup with the device connected to SDIO, transfer speed fixes
must be done after this negociation, i.e. in U-boot/Linux.
The links above refer to patches in 2015/2016 versions.
Compared to 2018 versions, the SDIO related software changed a lot, which makes the patches are not longer applicable.
I would think SDIO-eMMC through EMIO is not uncommon (especially in the industrial markets),
and standard speed mode instructions for recent u-boot/linux would be very helpful to many.
Again, I'll admit that I haven't done this myself, but this forum post over on xilinx.com appears to have much of the information that might help you.
That combined with some of the suggestions in my previously mentioned posts will hopefully help.
I need some help:
MicroZed onto custom carrier board
Custom carrier has eMMC device Sandisk SDINBDG4-8G, connected to SDIO1 controller using EMIO.
tools Vivado/Petalinux 2018.2 (started with mz7010_fmccc_2018_2.bsp)
boot from SD-card
eventually replacing SD boot with boot from QSPI+eMMC(through EMIO)
boot from SD card, and using u-boot mmc commands to test/verify eMMC infrastructure/accesses
Vivado: enabled SDIO1, and routed SD1-EMIO signals to eMMC device onto carrier board
connecting (EMIOSDIO1CLKFB = EMIOSDIO1CLK)
set SDIO clock in PS configurations : 20Mhz (AR# 59999)
booting from SD card
boot from SD is OK
in u-boot : 'mmc list' shows eMMC device (negociation at low speed), as well as SD device
(Error detected in status(0x208000)!, see log below)
mmc info : OK , can read device info from eMMC device
mmc read OK
mmc write NOK
using Vivado HW manager: used SD Clock is still around 50Mhz
(should go to lower/standard speed mode, e.g. <= 25Mhz, because of EMIO)
How to force standard speed mode, for SDIO1<->EMIO<->eMMC device (Petalinux) ?
Some changes needed in 2018.2 u-boot/linux/DT (e.g. some patches, constants, ) ?
DRAM: ECC disabled 1 GiB
MMC: sdhci_transfer_data: Error detected in status(0x208000)!
sdhci@e0100000: 0 (SD), sdhci@e0101000: 1 (eMMC)
** No device specified **
Zynq> mmc dev 1
sdhci_transfer_data: Error detected in status(0x208000)!
switch to partitions #0, OK
mmc1(part 0) is current device
Zynq> mmc info
Manufacturer ID: 45
Tran Speed: 52000000
Rd Block Len: 512
MMC version 5.1
High Capacity: Yes
Capacity: 7.3 GiB
Bus Width: 4-bit
Erase Group Size: 512 KiB
HC WP Group Size: 8 MiB
User Capacity: 7.3 GiB WRREL
Boot Capacity: 4 MiB ENH
RPMB Capacity: 4 MiB ENH