Part Number: AM5716
Other Parts Discussed in Thread: AM5718, TMP102, PMP
Tool/software: Linux
Dear Team,
We have a custom board based on AM5716 CPU. We have Mux(TS3A27518EPWR) & a Booster (NVT4857UKAZ) between MMC1 & UHS card. ATP uSD card is capable of SDR104, verified on EVM/IDK.
Mux supports upto 240MHz & Booster upto 208MHz.
on Custom board we have verified UHS mode, it is working fine only at 96MHz.
With 128MHz & 196MHz of clock, MMC1 is failing with the following error. Kernel log
[ 2.275768] 1.8V
[ 2.277614] MMC0: Switch enabled - 1
[ 2.293224] MMC0 Clkdiv = 480
[ 2.304256] mmc0: host does not support reading read-only switch, assuming write-enable
[ 2.312907] MMC0 Clkdiv = 480
[ 2.316877] MMC0 Clkdiv = 480
[ 2.319897] MMC0 Clkdiv = 1
[ 2.389831] mmc0: new ultra high speed SDR104 SDXC card at address 59b4
[ 2.406972] mmcblk0: mmc0:59b4 AF SD 56.3 GiB
[ 2.412600] mmcblk0: p1 p2
[ 2.456876] mmc1: MAN_BKOPS_EN bit is not set
[ 2.464619] mmc1: new DDR MMC card at address 0001
[ 2.479903] mmcblk1: mmc1:0001 Q2J54A 3.64 GiB
[ 2.494740] mmcblk1boot0: mmc1:0001 Q2J54A partition 1 2.00 MiB
[ 2.510939] mmcblk1boot1: mmc1:0001 Q2J54A partition 2 2.00 MiB
[ 2.517920] mmcblk1: p1 p2
[ 2.657106] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 2.665300] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 2.675095] devtmpfs: mounted
[ 2.678281] Freeing unused kernel memory: 336K (c08d6000 - c092a000)
[ 2.684680] This architecture does not have kernel memory protection.
[ 2.696957] omap_hsmmc 4809c000.mmc: ADMA err: ST_TFR, desc at 0xbe460098 follows the erroneous one
[ 2.733340] mmcblk0: retrying because a re-tune was needed
[ 2.775851] omap_hsmmc 4809c000.mmc: ADMA err: ST_TFR, desc at 0xbe460098 follows the erroneous one
[ 2.784999] mmcblk0: error -84 transferring data, sector 42993944, nr 240, cmd response 0x900, card status 0xb00
[ 2.795249] MMC0 Clkdiv = 0
[ 2.800911] MMC0 Clkdiv = 0
[ 2.803961] 3.3 or 3V
[ 2.806243] MMC0: Switch enabled - 0
[ 2.823228] MMC0 Clkdiv = 480
[ 2.843224] MMC0 Clkdiv = 480
[ 2.848378] MMC0 Clkdiv = 480
[ 2.876880] MMC0 Clkdiv = 480
[ 2.879875] MMC0 Clkdiv = 4
[ 2.882724] MMC0 Clkdiv = 4
[ 2.885543] mmc0: tried to reset card
[ 3.137757] systemd[1]: System time before build time, advancing clock.
CPU <-> MUX <-> Booster <-> UHS Card
Attached the clock captured at different stages and for different frequencies. in Case of 96MHz there is exact 180 phase shift, in other case there is difference. 
I understand there is tuning done by omap_hsmmc driver, still this is failing, what could be the possible reason, waiting for your inputs.
Thanks,
Vamshi G.
