From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RESEND 2/2] mmc:fix Call mmc_init() when executing mmc_get_dev()
Date: Wed, 09 May 2012 10:03:46 +0200 [thread overview]
Message-ID: <20120509100346.0b2ad055@lmajewski.digital.local> (raw)
In-Reply-To: <CAKWjMd5gnnm4y7b4vYZMZNQzV8N1WLJQm2c=04RNrGN2tFnr1g@mail.gmail.com>
Hi Andy,
> On Fri, Apr 20, 2012 at 2:09 AM, Lukasz Majewski
> <l.majewski@samsung.com> wrote:
> > Hi, Lei
> >
> >> I'm concerning with this adding init here.
> >> Since not every platform mount with emmc as boot device, and what
> >> they need is booting fast.
> >
> > If I remember correctly, u-boot policy is to not initialize the mmc
> > until it is needed (i.e. command is executed).
> > So the extra init won't be executed until fatls or mmc is executed.
> >
> >> If you order them to initialize all mmc/sd at
> >> mmc register stage, this adding booting time may not be the one
> >> they want to see.
> >
> > I think that booting time will not increase, because in the
> > mmc_init() there is a check:
> >
> > ? ? ? ?if (mmc->has_init)
> > ? ? ? ? ? ? ? ?return 0;
>
> This right here is something we need to discuss as a community. On the
> one hand, I can see the desire to not do unnecessary initialization
> every time we issue a command.
I cannot agree on that. I believe that subsystems (like MMC) shall be
explicitly enabled when needed.
Moreover we cannot guarantee, that MMC subsystem will be enabled only at
one place. For example mmc group of commands can explicitly enable it,
but also any other command which needs access to eMMC storage will
enable it.
Therefore, I think that:
?if (mmc->has_init)
? ? ? ? ? ?return 0;
check is needed.
Additionally we cannot check all possibilities of calling mmc_init()
and due to that performing two times initialization from scratch can be
catastrophic.
One more solution came to my mind. We can break u-boot policy, define a
flag (e.g. CONFIG_MMC_BOOT_ON), which will always issue the mmc_init()
during boot time. Then we can remove (or not execute)
mmc_init() call from other commands/use cases.
> On the other hand, we need some way of
> dealing with the possibility that the cards that were in the slot when
> we booted are no longer there (or that empty slots have now been
> filled).
One good idea would be to distinct SD cards (removable) with eMMC
persistent devices.
Creating a "mmc device class" would solve the problem. Then one
can assume, that eMMC is always "inserted" and no above problem appears.
With SD card one can probe (in some cards - card detect or more
reliably by issuing command) when trying to send CMD to it. Response
with 0xFFFF shall indicate that card has been removed.
I must check if above ideas can be implemented with new device model
for u-boot.
--
Best regards,
Lukasz Majewski
Samsung Poland R&D Center | Linux Platform Group
next prev parent reply other threads:[~2012-05-09 8:03 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-19 12:39 [U-Boot] [RESEND 0/2] mmc:fix: MMC fixes for generic mmc driver running at GONI Lukasz Majewski
2012-04-19 12:39 ` [U-Boot] [RESEND 1/2] mmc:fix: Set mmc width according to MMC host capabilities Lukasz Majewski
2012-04-19 14:27 ` Lei Wen
2012-04-19 12:39 ` [U-Boot] [RESEND 2/2] mmc:fix Call mmc_init() when executing mmc_get_dev() Lukasz Majewski
2012-04-19 14:23 ` Lei Wen
2012-04-20 7:09 ` Lukasz Majewski
2012-04-21 8:39 ` Lei Wen
2012-05-08 22:33 ` Andy Fleming
2012-05-09 8:03 ` Lukasz Majewski [this message]
2012-04-25 7:38 ` [U-Boot] [RESEND 0/2] mmc:fix: MMC fixes for generic mmc driver running at GONI Lukasz Majewski
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=20120509100346.0b2ad055@lmajewski.digital.local \
--to=l.majewski@samsung.com \
--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