Hi Leif,
2016-11-18 19:32 GMT+01:00 Leif Lindholm leif.lindholm@linaro.org:
On Fri, Nov 18, 2016 at 05:37:28PM +0100, Marcin Wojtas wrote:
From: Jan Dąbroś jsd@semihalf.com
Because Xenon SD/MMC controller isn't fully compatible with SDHC, it demands some quirks on generic driver during initialization and command processing. Below are listed necessary changes:
- Add Xenon-specific init sequence - registers related to PHY
- Add Xenon-specific command processing sequence:
- Because DMA isn't yet supported, we use PIO mode for DATA transfers. It brings necessity of sending SD_STOP_TRANSMISSION for multiple-block transfers and polling for card status after write data transfers, which aren't implemented in edk2's SdMmc stack
- Command processing sequence for Xenon controller have also other quirks regarding flow of operation (please see comments in code) and TRB-oriented method isn't applicable in this case.
Beside above, MvSdMmcPciHcDxe driver is compatible with SdMmcPciHcDxe.
Two files containing Xenon-specific functions and defines were added.
Well, this has to be one of the most substantial improvements I've seen from a v1 to a v2.
Please also note time between v1 and v2:) Jan did a huge effort to achieve that.
Makes me feel a little bad for pointing out a couple of things I spotted unaddressed:
- two last gBs->Stall calls lacking comments.
- you said you'd rename a variable in XenonReset to Retries (from Timout), which was only a suggestion from my side, but you said you'd do it :)
We'd correct it, thanks a lot for review. Have a nice vacation!
Best regards, Marcin