
On Mon, Jan 21, 2019 at 12:54:52AM +0000, André Przywara wrote:
On 20/01/2019 19:51, Priit Laes wrote:
Hi,
On Sat, Jan 19, 2019 at 01:30:46AM +0000, Andre Przywara wrote:
This series enables the Allwinner MMC driver to drive all SoCs with its DM_MMC variant. We use the gates clock and reset support from the new clock driver, but keep the actual mod clock in its somewhat hackish state. Properly supporting this via the clock driver is a bit more work. The per-compatible variant struct for now only holds the mod clock address (which will go away), but we will need the struct later again for the various timing modes.
This allows us to eventually enable DM_MMC for all SoCs, and get rid of the nasty deprecation warning.
The first patch adds the MMC clock gates and resets to the clock driver. Patch 2/9 adds support for the A80 MMC config clock, which is a bit special. I can't test this, so please give this a try if you have a board.
Patch 3 uses the new clocks in the MMC driver, the following three patches add the remaining compatible strings along with their required mod clock addresses.
Patch 7 fixes the Pine64-LTS board, while patch 8 eventually enables everything. Patch 9 is some comment fix to make it easier to reason about what part of the driver is for DM_MMC and which is not.
I successfully compiled the HEAD for all 142 Allwinner boards, also compiled all patches for selected boards.
This was briefly tested on Pine-H64 (H6), Pine64-LTS (A64), OrangePi PC 2 (H5), OrangePi Zero (H2+) and BananaPi-M1 (A20).
Please run it on every board that you can get hold of to give this series a good shake.
Testing with A10 Gemei G9 Tablet, FEL mode is broken:
a) With usb-boot via fel:
I get following error/warning: Loading Environment from FAT... Card did not respond to voltage select!
=> mmc list mmc@1c0f000: 0 ### All commands below stalls for a bit (~2 seconds), but return nothing => mmc info => mmc dev 0 => mmc part
Similar issue with A20 Olinuxino Lime2 revk with SPI.
a) Fel mode usb-boot failure (cannot properly initialize sd / emmc) b) SPI boot failure (cannot properly initialize sd / emmc)
c) Regular SD-card boot works ok! d) eMMC boot works ok!
Ah, thanks for mentioning that. Can reproduce this on the Pine64-LTS. And I was already wondering why we wouldn't need the pinctrl parts I was working on ...
So if we boot from SD card, the SPL sets up the pinmux for the SD pins, and stuff works. For U-Boot proper we rely on board_mmc_init() to do this for us, but this gets only called for !DM_MMC configurations. If we boot with a SPL which doesn't initialise the MMC (booting via FEL or SPI or NAND), the pinmux setup is missing and it fails.
If anyone has a clever idea how to fix this without too much hacking and without bringing in a DM_PINCTRL driver, I am all ears.
Well, we know that there are basically only a few SPL boot options..
Thanks for testing and the report!
Cheers, Andre.
b) When booting from SD-card [1], card is properly found, identified and even partitions are there.
dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 seek=8 bs=1024
This goes on top of current sunxi/master (543049ab5906) and is available on https://github.com/apritzel/u-boot/commits/sunxi-dm.
This replaces Jagan's v2 series "mmc: sunxi: Enable DM_MMC" in a more driver model compliant way, borrowing two patches from him.
Cheers, Andre.
Andre Przywara (7): sunxi: clk: add MMC gates/resets sunxi: clk: A80: add MMC clock support mmc: sunxi: Add DM clk and reset support mmc: sunxi: Add H6 support mmc: sunxi: Add A80 support mmc: sunxi: Honour non-removable property in DT mmc: sunxi: Mark end of DM_MMC #ifdefs
Jagan Teki (2): mmc: sunxi: Add missing compatible strings arm: sunxi: Enable DM_MMC
arch/arm/Kconfig | 1 + arch/arm/mach-sunxi/Kconfig | 1 - configs/Linksprite_pcDuino3_defconfig | 1 - drivers/clk/sunxi/clk_a10.c | 4 +++ drivers/clk/sunxi/clk_a10s.c | 3 ++ drivers/clk/sunxi/clk_a23.c | 6 ++++ drivers/clk/sunxi/clk_a31.c | 8 +++++ drivers/clk/sunxi/clk_a64.c | 6 ++++ drivers/clk/sunxi/clk_a80.c | 28 ++++++++++++++++- drivers/clk/sunxi/clk_a83t.c | 6 ++++ drivers/clk/sunxi/clk_h3.c | 6 ++++ drivers/clk/sunxi/clk_h6.c | 6 ++++ drivers/clk/sunxi/clk_r40.c | 8 +++++ drivers/mmc/sunxi_mmc.c | 59 +++++++++++++++++++++++++++++------ 14 files changed, 131 insertions(+), 12 deletions(-)
-- 2.14.5
-- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/d/optout.