Re: [PATCH v5 0/4] mmc: sdhci-of-aspeed: Support toggling SD bus signal

From: Andrew Jeffery
Date: Tue May 25 2021 - 19:00:20 EST




On Tue, 25 May 2021, at 22:26, Joel Stanley wrote:
> On Tue, 25 May 2021 at 09:48, Steven Lee <steven_lee@xxxxxxxxxxxxxx> wrote:
> >
> > The 05/25/2021 15:55, Joel Stanley wrote:
> > > When I was testing on my A2 EVB I saw this:
> > >
> > > [ 1.436219] sdhci-aspeed 1e750100.sdhci: Requested out of range
> > > phase tap 192 for 9 degrees of phase compensation at 1562500Hz,
> > > clamping to tap 15
> > > [ 1.450913] sdhci-aspeed 1e750100.sdhci: Requested out of range
> > > phase tap 963 for 45 degrees of phase compensation at 1562500Hz,
> > > clamping to tap 15
> > >
> > > Do you know what is happening there?
> > >
> >
> > Per MMC spec, eMMC bus speed is set as legacy mode(0~26MHz) at startup of
> > eMMC initializtion flow. Clock phase calculation is triggered in set_clock()
> > and it calculates taps based on phase_deg(<9>, <225>) in the dts file and the
> > current speed(1562500Hz), which causes the warning message you mentioned.
> > As the phase_deg in the dts file should be calculated with 100MHz.
> >
> > https://lkml.org/lkml/2021/5/24/95
> >
> > But after some initialization flow, eMMC bus speed will be set to
> > correct speed(100MHz).
> > Clock phase calculation will be triggered again to get correct taps.
>
> Thanks for the explanation. I added another debug print and I can see
> it doing what you describe:
>
> [ 1.465904] sdhci-aspeed 1e750100.sdhci: Requested out of range
> phase tap 192 for 9 degrees of phase compensation at 1562500Hz,
> clamping to tap 15
> [ 1.480598] sdhci-aspeed 1e750100.sdhci: rate 1562500 phase 9 tap 15
> [ 1.490316] sdhci-aspeed 1e750100.sdhci: Requested out of range
> phase tap 963 for 45 degrees of phase compensation at 1562500Hz,
> clamping to tap 15
> [ 1.505077] sdhci-aspeed 1e750100.sdhci: rate 1562500 phase 45 tap 15
> [ 1.515059] sdhci-aspeed 1e750100.sdhci: rate 100000000 phase 9 tap 3
> [ 1.524886] sdhci-aspeed 1e750100.sdhci: rate 100000000 phase 45 tap 15
> [ 1.534904] sdhci-aspeed 1e750100.sdhci: rate 100000000 phase 9 tap 3
> [ 1.544713] sdhci-aspeed 1e750100.sdhci: rate 100000000 phase 45 tap 15
>
> We should change the "out of range" message to be dev_dbg, as it is
> expected on a normal boot.

I would think the issue is rather that we shouldn't be applying a phase
correction for a bus speed that isn't what the correction was specified
for.

Let me look at this a bit further.

Andrew