Am Fri, Apr 02, 2021 at 12:56:24PM +1100 schrieb Darren Tucker:
> On Fri, Apr 02, 2021 at 01:01:30AM +0200, Mark Kettenis wrote:
> > Hi Darren,
> > 
> > This got broken when Patrick fixed something related to slow mode for
> > the Marvel ARMADA 8040 SoC.  The diff below fixes it for me on my
> > Turris MOX which uses the same SoC.  Not entirely sure what is going
> > wrong here since looking at the Linux code suggests that Patrick's fix
> > should work on the ARMADA 3720 as well.
> 
> Confirmed that this fixes it.  dmesg at end of mail.

Damn.  I'm sorry, it wasn't my intention to break anything with that.
As far as I remember, that particular change was an attempt to reduce
diff.  This one wasn't even needed to fix my ClearFog GT8K.

By the way, U-Boot always sets slow mode for legacy and high speed,
which is similar to what we had before.

I would actually propose reverting my change completely.  My GT 8K still
works, but even better: it seems to make the SD card show up on my early
revision MacchiatoBin.

-sdmmc1: can't enable card
 scsibus2 at sdmmc0: 2 targets, initiator 0
 sd1 at scsibus2 targ 1 lun 0: <Samsung, 8GME4R, 0000> removable
 sd1: 7456MB, 512 bytes/sector, 15269888 sectors
+scsibus3 at sdmmc1: 2 targets, initiator 0
+sd2 at scsibus3 targ 1 lun 0: <SD/MMC, 00000, 0000> removable
+sd2: 7632MB, 512 bytes/sector, 15630336 sectors

Maybe you both can try my revert and make sure it doesn't introduce any
other regressions?

> > That BRUME thingy looks cute, but has a bit of an issue.  It doesn't
> > really have three Ethernet ports.  Instead those ports are part of a
> > switch that also connects to an Ethernet interface on the SoC.
> 
> Yeah I noticed that.  Single ethernet plus programmable switch seems to
> be pretty common in this class of device.

And if someone wants to program it, feel free to, mvsw(4) exists for a
reason, might just need some code. :)

diff --git a/sys/dev/fdt/sdhc_fdt.c b/sys/dev/fdt/sdhc_fdt.c
index 56bf15c46fa..cc0239df682 100644
--- a/sys/dev/fdt/sdhc_fdt.c
+++ b/sys/dev/fdt/sdhc_fdt.c
@@ -430,8 +430,8 @@ phy_init:
            XENON_EMMC_PHY_TIMING_ADJUST);
        reg |= XENON_EMMC_PHY_TIMING_ADJUST_SAMPL_INV_QSP_PHASE_SELECT;
        reg &= ~XENON_EMMC_PHY_TIMING_ADJUST_SLOW_MODE;
-       if ((timing == SDMMC_TIMING_LEGACY ||
-           timing == SDMMC_TIMING_HIGHSPEED) && sc->sc_slow_mode)
+       if (timing == SDMMC_TIMING_LEGACY ||
+           timing == SDMMC_TIMING_HIGHSPEED || sc->sc_slow_mode)
                reg |= XENON_EMMC_PHY_TIMING_ADJUST_SLOW_MODE;
        bus_space_write_4(sc->sc_iot, sc->sc_ioh,
            XENON_EMMC_PHY_TIMING_ADJUST, reg);

Reply via email to