From mboxrd@z Thu Jan 1 00:00:00 1970 From: Priit Laes Date: Mon, 21 Jan 2019 08:22:05 +0000 Subject: [U-Boot] [linux-sunxi] [PATCH 0/9] sunxi: enable DM_MMC In-Reply-To: <6851bd0e-64a1-03cf-0406-13ba27d9c1f4@arm.com> References: <20190119013055.28023-1-andre.przywara@arm.com> <20190120195155.3jlqzljjjmxdm3ib@plaes.org> <6851bd0e-64a1-03cf-0406-13ba27d9c1f4@arm.com> Message-ID: <20190121082205.6222p6wqpgsuw6tn@plaes.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: u-boot@lists.denx.de On Mon, Jan 21, 2019 at 12:54:52AM +0000, Andr=C3=A9 Przywara wrote: > On 20/01/2019 19:51, Priit Laes wrote: >=20 > Hi, >=20 > > 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 wor= k. > >> 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 drive= r. > >> 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 bo= ard. > >> > >> Patch 3 uses the new clocks in the MMC driver, the following three pat= ches > >> add the remaining compatible strings along with their required mod clo= ck > >> 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 P= C 2 > >> (H5), OrangePi Zero (H2+) and BananaPi-M1 (A20). > >> > >> Please run it on every board that you can get hold of to give this ser= ies > >> a good shake. > >=20 > > Testing with A10 Gemei G9 Tablet, FEL mode is broken: > >=20 > > a) With usb-boot via fel: > >=20 > > I get following error/warning:=20 > > Loading Environment from FAT... Card did not respond to voltage select! > >=20 > > =3D> mmc list > > mmc at 1c0f000: 0 > > ### All commands below stalls for a bit (~2 seconds), but return nothing > > =3D> mmc info =20 > > =3D> mmc dev 0 > > =3D> 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 ... >=20 > 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. >=20 > 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.. >=20 > Thanks for testing and the report! >=20 > Cheers, > Andre. >=20 > >=20 > > b) When booting from SD-card [1], card is properly found, identified and > > even partitions are there. > >=20 > > dd if=3Du-boot-sunxi-with-spl.bin of=3D/dev/mmcblk0 seek=3D8 bs=3D1024 > >=20 > >=20 > >> This goes on top of current sunxi/master (543049ab5906) and is availab= le > >> 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(-) > >> > >> --=20 > >> 2.14.5 > >> > >> --=20 > >> You received this message because you are subscribed to the Google Gro= ups "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. >=20