From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Date: Thu, 24 Sep 2015 13:59:58 +0200 Subject: [U-Boot] [PATCH] sunxi: mmc: Fix clk-delay settings In-Reply-To: <1443090586.10338.263.camel@hellion.org.uk> References: <1443038399-3784-1-git-send-email-hdegoede@redhat.com> <1443087620.10338.254.camel@hellion.org.uk> <5603CA08.3070007@redhat.com> <1443090586.10338.263.camel@hellion.org.uk> Message-ID: <5603E5BE.40003@redhat.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On 24-09-15 12:29, Ian Campbell wrote: > On Thu, 2015-09-24 at 12:01 +0200, Hans de Goede wrote: >> Hi, >> >> On 24-09-15 11:40, Ian Campbell wrote: >>> On Wed, 2015-09-23 at 21:59 +0200, Hans de Goede wrote: >>>> In recent allwinner kernel sources the mmc clk-delay settings have >>>> been >>>> slightly tweaked, and for sun9i they are completely different then >>>> what >>>> we are using. >>>> >>>> This commit brings us in sync with what allwinner does, fixing >>>> problems >>>> accessing sdcards on some A33 devices (and likely others). >>>> >>>> For pre sun9i hardware this makes the following changes: >>>> -At 400Khz change the sample delay from 7 to 0 (first introduced in >>>> A31 sdk) >>> >>> This one applied to sun9i as well as pre I think? >>> >>>> -At 50 Mhz change the sample delay from 5 to 4 (first introduced in >>>> A23 sdk) >>> >>> By my reading it also changes oclk from 2 to 1 on 50MHz. >> >> Right, I did not list that as we never do > 50MHz, > > But the being changed here does handle that (the else hz > 50000000 case) > and that is changing even if we somehow coincidentally arrange that this > code is never used today I think it is worth mentioning so that if it does > become used we have the history of when/why it was changed. Ok, I'll amend the commit message. >> later on in the code >> we've: >> >> cfg->f_max = 52000000; >> >> And that 52 is somewhat symbolically there, it is meant for 52MHz sdio >> where as mmc / sdcards run at 50MHz max. > > Are these timings used for sdio as well then? That seems worth noting. Yes, but we never use sdio in u-boot, more in general mmc/sdio is usually used referred to as just mmc (see e.g. the subsystem name, etc.). >>> I don't really follow the a/w SDK stuff, is it the case that a given >>> Ann >>> SDK is tested and supported by Allwinner and used on real devices for >>> processors Amm < Ann (chronologically, ? >> >> Yes and no, Allwinner used to have separate kernel sources for each >> die, so one for sun4i, sun5i, sun6i and sun7i. >> >> Recently they have changed to one unified kernel tree though, so all >> of sun6i, sun8i and sun9i build from the same kernel tree. Note that >> sun7i is missing from the list. >> >>> IOW if a change was introduced in the A31 SDK do we then have >>> confidence >>> that it doesn't break A20 due to Allwinners (and their customer's) use >>> of >>> the A31 SDK on A20 or are we relying on our own + community testing? >> >> It is safe to assume that the A23 changes do not break on the A31 since >> that is using the same kernel sources. The changes may cause issues >> on A20 though (A10 / A13 do not use the sample delay bits of the register >> AFAICT). So I've run several tests on A20 and things seem to work fine >> with the new settings there. > > Great. > >> I believe that the mmc controller and the mmc clock bits really are the >> same over all of A20 / A23 / A31 / A33, and that these new tweaked values >> are better to use everywhere. >> >> Regards, >> >> Hans >> Regards, Hans