[U-Boot] [linux-sunxi] [PATCH 0/9] sunxi: enable DM_MMC

André Przywara andre.przywara at arm.com
Mon Jan 21 00:54:52 UTC 2019


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 at 1c0f000: 0
> ### All commands below stalls for a bit (~2 seconds), but return nothing
> => mmc info  
> => mmc dev 0
> => mmc part

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.

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 at googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.



More information about the U-Boot mailing list