From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/2] arm: socfpga: mmc: Enable calibration for drvsel and smpsel
Date: Tue, 8 Sep 2015 12:56:21 +0200 [thread overview]
Message-ID: <201509081256.21751.marex@denx.de> (raw)
In-Reply-To: <1441675953.1908.14.camel@clsee-VirtualBox>
On Tuesday, September 08, 2015 at 03:32:33 AM, Chin Liang See wrote:
> Hi,
Hi,
> On Mon, 2015-09-07 at 03:33 +0000, Jaehoon Chung wrote:
> > Hi,
> >
> > On 09/04/2015 07:41 PM, Pavel Machek wrote:
> > > Hi!
> > >
> > >>>>>>> How is this SMPLSEL and DRVSEL implemented on Exynos ?
> > >>>>>
> > >>>>> Exynos is using CLKSEL register in dw-mmc controller.
> > >>>>> It's exynos specific register in dwmmc controller. It's also
> > >>>>> represented 45 degree increment. SELCK_DRV is bit[18:16] or more.
> > >>>>> SELCLK_SAMPLE is bit[2:0] or more. There are other bits relevant to
> > >>>>> tuning clock. '_more_' means that it can be changed bandwidth.
> > >>>>>
> > >>>>> Anyway, I think there is no right method about finding the best
> > >>>>> smplclk and drvsel. If this is generic method, i will pick this.
> > >>>>> But i don't think so, and there is no benefit for exynos.
> > >>>>>
> > >>>>> smplclk and drvsel value need to process the tuning sequence.
> > >>>>> There is no tuning case at bootloader, since it's not implemented
> > >>>>> about HS200 or upper mode.
> > >>>>>
> > >>>>> Clksel an drvsel value are passed by device tree.
> > >>>>
> > >>>> In that case, maybe SoCFPGA should also pick those values from DT ?
> > >>>> It would keep the code simple and in case there is a problematic
> > >>>> board, it could use u-boot application to perform the tuning.
> > >>>
> > >>> I prefer not to do that as it narrows the supported use case for the
> > >>> driver.
> > >>
> > >> How so? It keeps the driver code clean and this code you're adding
> > >> seems like a special-purpose stuff which needs to be done once for
> > >> particular board, no ?
> > >
> > > Well... stuff that can be automatically detected is not supposed to be
> > > in the device tree.
> > >
> > > clksel and drvsel can be calibrated, so I see some arguments why we
> > > should calibrate them, and not hardcode them in the device tree.
> >
> > My opinions are
> >
> > 1. This code is not generic dwmmc code. So i don't want to locate into
> > dwmmc core. If need to apply, i agree that it applies this in
> > socfpga-dw_mmc.c.
>
> Yup, let move that to socfpga-dw_mmc.c as majority believe that is
> correct way to move forward. I shall send in v3 which integrate Pavel's
> comment in v2
>
> > 2. In exynos, value of devcie-tree is the tested value.
> > After has tested with every values, it defined the best value into
> > device-tree. (Working fine with values.)
> > At every time, it doesn't need to detect the best value with same SoC.
> > (Especially, at bootloader)
> >
> > 3. In my experiment, there should be side-effect during finding best
> > sample/drv value.
> >
> > 4. If HS200 or upper mode is supported at bootloader, it needs the tuning
> > sequence. Then it needs to find the best sampl/drv values. but it
> > doesn't support HS200 or other at bootloader.
>
> Yah, normally it will not need that.
> As we are catering for various customer board design, this calibration
> will help even they routed the SDMMC slot few inches away.
>
> > 5. Affect at booting time??
>
> We measured this before and it took around ~5.2ms for worst case.
Hm, what about supporting both the DT variant (where you specify drvsel and
smplsel in DT, the way we do it in Linux) and this calibration variant. The
calibration would only be executed if the smplsel and drvsel args were missing
from the DT.
What do you think ?
next prev parent reply other threads:[~2015-09-08 10:56 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-19 5:54 [U-Boot] [PATCH 1/2] arm: socfpga: mmc: Enable calibration for drvsel and smpsel Chin Liang See
2015-08-19 7:26 ` Pavel Machek
2015-08-19 7:34 ` Marek Vasut
2015-08-19 8:30 ` Chin Liang See
2015-08-19 23:23 ` Marek Vasut
2015-08-19 8:33 ` Chin Liang See
2015-08-19 7:40 ` Marek Vasut
2015-08-19 8:21 ` Chin Liang See
2015-08-19 19:36 ` Marek Vasut
2015-08-20 5:28 ` Chin Liang See
2015-08-20 5:32 ` Marek Vasut
2015-08-20 21:55 ` Dinh Nguyen
2015-08-20 21:59 ` Marek Vasut
2015-08-21 0:33 ` Dinh Nguyen
2015-08-21 0:42 ` Marek Vasut
2015-08-21 20:52 ` Simon Glass
2015-08-24 15:04 ` Chin Liang See
2015-08-25 2:36 ` Jaehoon Chung
2015-08-25 3:08 ` Chin Liang See
2015-08-26 5:29 ` Jaehoon Chung
2015-08-26 5:47 ` Chin Liang See
2015-08-26 6:14 ` Jaehoon Chung
2015-08-26 6:54 ` Chin Liang See
2015-09-01 8:54 ` Chin Liang See
2015-09-01 9:01 ` Marek Vasut
2015-09-01 9:10 ` Chin Liang See
2015-09-01 10:12 ` Jaehoon Chung
2015-09-01 14:53 ` Dinh Nguyen
2015-09-02 10:32 ` Marek Vasut
2015-09-03 0:27 ` Chin Liang See
2015-09-03 5:30 ` Jaehoon Chung
2015-09-03 9:37 ` Marek Vasut
2015-09-03 14:06 ` Chin Liang See
2015-09-03 14:25 ` Marek Vasut
2015-09-04 10:41 ` Pavel Machek
2015-09-07 8:33 ` Jaehoon Chung
2015-09-08 1:32 ` Chin Liang See
2015-09-08 10:56 ` Marek Vasut [this message]
[not found] ` <0016CF5815A1B142902817051AF62EB305FDF5BA@PG-ITEXCH01.altera.priv.altera.com>
2015-10-07 2:54 ` Chin Liang See
2015-10-12 14:44 ` Marek Vasut
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201509081256.21751.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox