devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC 0/4] RISC-V: Add basic eMMC support for BeagleV Ahead
@ 2023-07-25  0:59 Drew Fustini
  2023-07-25  0:59 ` [PATCH RFC 1/4] dt-bindings: mmc: sdhci-of-dwcmhsc: Add T-Head TH1520 compatible Drew Fustini
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Drew Fustini @ 2023-07-25  0:59 UTC (permalink / raw)
  To: Jisheng Zhang, Guo Ren, Fu Wei, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Conor Dooley, Adrian Hunter, Ulf Hansson
  Cc: linux-riscv, devicetree, linux-kernel, linux-mmc, Robert Nelson,
	Jason Kridner, Drew Fustini

This series adds initial support for the eMMC on the BeagleV Ahead
board. This allows the kernel to boot with the root fs on eMMC.

I tested [1] on top of v6.5-rc3 along with the prerequisite series [2]
that adds the BeagleV Ahead dts file.

I am submitting this as an RFC for other people that want to boot
mainline Liunx from the eMMC. There several issues that need to be
addressed in order to claim that MMC fully supported on TH1520:

  - Only the MMC controller connected to the eMMC is enabled. I did
    not attempt to configure or use the microSD card slot.

  - The new th1520 compatible in the sdhci-of-dwcmshc driver turns off
    DMA and just uses the inefficient PIO mode, because I did not yet
    get into the correct configuration for DMA support.

  - The new th1520 compatible in sdhci-of-dwcmshc turns the reset op
    into a no-op. The vendor boot loader [3] fully configures the mmc
    controller and the phy. The kernel does not yet know how to do that
    so it avoids doing a reset. This is essentially a hack and not the
    correct way to handle the situation.

Fortunately, Jisheng is the original author of sdhci-of-dwcmshc so I
am sure Jisheng will know many ways in which this can be improved.

NOTE: I combined schema, dts and driver patches into this one series for
the purposes discussing the RFC but that is probably not the correct
structure for a real patch series.

Thanks,
Drew

[1] https://gist.github.com/pdp7/23259595a7570f1f11086d286e16dfb6
[2] https://lore.kernel.org/linux-riscv/20230722-upstream-beaglev-ahead-dts-v2-0-a470ab8fe806@baylibre.com/
[3] https://git.beagleboard.org/beaglev-ahead/beaglev-ahead-u-boot

Signed-off-by: Drew Fustini <dfustini@baylibre.com>
---
Drew Fustini (4):
      dt-bindings: mmc: sdhci-of-dwcmhsc: Add T-Head TH1520 compatible
      riscv: dts: thead: Add TH1520 mmc controller and sdhci clock
      riscv: dts: thead: Enable BeagleV Ahead eMMC controller
      mmc: sdhci-of-dwcmshc: Add support for T-Head TH1520

 .../bindings/mmc/snps,dwcmshc-sdhci.yaml           |  1 +
 arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts | 14 ++++++++
 arch/riscv/boot/dts/thead/th1520.dtsi              | 17 +++++++++
 drivers/mmc/host/sdhci-of-dwcmshc.c                | 42 ++++++++++++++++++++++
 4 files changed, 74 insertions(+)
---
base-commit: cb8c874afdc063290797ae1776a5d410fecb06cb
change-id: 20230724-th1520-emmc-73cde98805d6

Best regards,
-- 
Drew Fustini <dfustini@baylibre.com>


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-07-25 15:54 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-25  0:59 [PATCH RFC 0/4] RISC-V: Add basic eMMC support for BeagleV Ahead Drew Fustini
2023-07-25  0:59 ` [PATCH RFC 1/4] dt-bindings: mmc: sdhci-of-dwcmhsc: Add T-Head TH1520 compatible Drew Fustini
2023-07-25  5:40   ` Krzysztof Kozlowski
2023-07-25  0:59 ` [PATCH RFC 2/4] riscv: dts: thead: Add TH1520 mmc controller and sdhci clock Drew Fustini
2023-07-25  0:59 ` [PATCH RFC 3/4] riscv: dts: thead: Enable BeagleV Ahead eMMC controller Drew Fustini
2023-07-25  0:59 ` [PATCH RFC 4/4] mmc: sdhci-of-dwcmshc: Add support for T-Head TH1520 Drew Fustini
2023-07-25 15:03   ` Jisheng Zhang
2023-07-25 15:54     ` Drew Fustini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).