Page MenuHomeFreeBSD

[PATCH 4/7] aw_mmc: recover a clock update stuck behind an unsolicited data transfer
AcceptedPublic

Authored by vice-shore-grid_duck.com on Sat, Oct 17, 12:29 PM.
Tags
Referenced Files
Unknown Object (File)
Mon, Oct 19, 7:22 AM
Unknown Object (File)
Sun, Oct 18, 11:24 PM
Unknown Object (File)
Sat, Oct 17, 8:07 PM
Unknown Object (File)
Sat, Oct 17, 6:50 PM
Unknown Object (File)
Sat, Oct 17, 5:51 PM
Unknown Object (File)
Sat, Oct 17, 2:31 PM
Unknown Object (File)
Sat, Oct 17, 2:22 PM
Unknown Object (File)
Sat, Oct 17, 2:21 PM
Subscribers

Details

Reviewers
andrew
manu
Group Reviewers
arm64
Summary

On the PineTab the eMMC is left in bus-test mode by U-Boot (last command
CMD14, 8 bytes pending) and streams its buffer as soon as it receives a
clock. The controller then considers a data transfer in progress and
the PRG_CLK that enabled the clock never completes; every later request
times out and, at boot, the SD card holding the root file system is not
found in time. The hardware reset pulse asserts and deasserts RST_n
back to back; the eMMC specification requires the line low for at
least 1us and 200us before the first command. This PR adds the delay.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

This revision is now accepted and ready to land.Sun, Oct 18, 6:14 AM
mmel added inline comments.
sys/arm/allwinner/aw_mmc.c
1314

This doesn't make sense to me. Could you please explain why calling aw_mmc_reset() in aw_mmc_attach() is not sufficient and must be repeated, or how an unfinished transfer in the eMMC card can survive CMD00? Also, please explain how issuing aw_mmc_reset() can work at all after the interface voltage is switched to 1.8 V.

vice-shore-grid_duck.com retitled this revision from [PATCH 4/5] aw_mmc: recover a clock update stuck behind an unsolicited data transfer to [PATCH 4/7] aw_mmc: recover a clock update stuck behind an unsolicited data transfer.Tue, Oct 20, 6:23 AM