From: Paul Mundt <lethal@linux-sh.org>
To: linux-sh@vger.kernel.org
Subject: Re: SDHI polling
Date: Mon, 27 Dec 2010 00:10:24 +0000 [thread overview]
Message-ID: <20101227001024.GB16946@linux-sh.org> (raw)
In-Reply-To: <20101226224506.GD21535@verge.net.au>
On Mon, Dec 27, 2010 at 08:34:10AM +0900, Magnus Damm wrote:
> On Mon, Dec 27, 2010 at 8:24 AM, Paul Mundt <lethal@linux-sh.org> wrote:
> > On Mon, Dec 27, 2010 at 07:59:15AM +0900, Magnus Damm wrote:
> >> On Mon, Dec 27, 2010 at 7:45 AM, Simon Horman <horms@verge.net.au> wrote:
> >> > I have it in mind to run the SDHI hardware block in some sort of
> >> > polling mode - that is, with interrupts disabled - during early
> >> > boot. Does this make any sense?
> >>
> >> I guess it depends on how early you mean. =)
> >>
> >> Usually you want to make use of interrupts if they are available, but
> >> for really early code there is no interrupt support. So the in-kernel
> >> early printk support is implemented without any interrupts for
> >> instance. At least this is true for the SCIF driver used by SH and
> >> SH-Mobile / R-Mobile, pretty sure it applies to other hardware
> >> platforms as well.
> >>
> >> As for the SDHI version of the MMC loader, I think you should do the
> >> same as the MMCIF loader that is present in
> >> include/linux/mmc/sh_mmcif.h. As you know it gets compiled into a
> >> separate image together with the rest of the zImage loader. No
> >> interrupt handling is available in that code, so just implementing
> >> things using polling mode is good enough.
> >>
> >> I'm not 100% sure about U-boot these days, but I wouldn't be surprised
> >> if many boot loaders only implement polling.
> >>
> > That's probably true, but note that most boot loaders do have rudimentary
> > interrupt stubs for the timer tick and so forth. I wouldn't classify a
> > boot loader as early code, it's more just half-assed. For true "early"
> > code polling is probably ok, particularly if you aren't able to continue
> > on without reading the image from the card. You will probably still want
> > to be able to track various state changes in order to ease debugging and
> > work out whether you get stuck or not. If the block raises an exception
> > for recoverable errors and so on then you're still going to have to deal
> > with an asynchronous code flow, too.
>
> http://git.denx.de/?p=u-boot.git;a=blob;f=arch/sh/cpu/sh4/interrupts.c;hi88ecc7c28d1f345ee9d0b904c8e8b4e3eb8ccb;hbÍc51c294ad33879c4e57edf4c9d2155381b1d59
Wow, that's really taking half-assed to a whole new level. If only it
were possible to unsee bootloader code.
In any event, just because the boot loader people are useless doesn't
mean you can't set the bar a bit higher for yourself when designing new
features.
next prev parent reply other threads:[~2010-12-27 0:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-26 22:45 SDHI polling Simon Horman
2010-12-26 22:59 ` Magnus Damm
2010-12-26 23:24 ` Paul Mundt
2010-12-26 23:34 ` Magnus Damm
2010-12-27 0:10 ` Paul Mundt [this message]
2010-12-27 0:23 ` Simon Horman
2010-12-27 0:57 ` Magnus Damm
2010-12-27 1:03 ` Magnus Damm
2010-12-27 1:13 ` Simon Horman
2010-12-27 1:36 ` Paul Mundt
2010-12-27 1:44 ` Simon Horman
2010-12-27 1:47 ` Magnus Damm
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=20101227001024.GB16946@linux-sh.org \
--to=lethal@linux-sh.org \
--cc=linux-sh@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).