From: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
To: Pierre Ossman <drzeus-mmc-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
mikael.starvik-VrBV9hrLPhE@public.gmane.org,
hans-peter.nilsson-VrBV9hrLPhE@public.gmane.org,
mike-UTnDXsALFwNjMdQLN6DIHgC/G2K4zDHf@public.gmane.org
Subject: Re: [patch 4/4] MMC-over-SPI host driver
Date: Fri, 22 Jun 2007 14:18:43 -0700 [thread overview]
Message-ID: <200706221418.44214.david-b@pacbell.net> (raw)
In-Reply-To: <4679691C.2060803-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
On Wednesday 20 June 2007, Pierre Ossman wrote:
> David Brownell wrote:
> >>> Right now it looks like the main reason to keep including mmc.h is
> >>> to handle one aspect of mapping the data error token. ...
> >> Don't map at all. Just give the core what you got from the card.
> >
> > Tried that, it fails for the obvious (in retrospect) reason: after each
> > command that's issued, something needs to ensure that the return code won't
> > be MMC_ERR_NONE after errors. That means looking at those R1 bits which
> > report that hardware status.
>
> The error codes were never supposed to report card status, only controller
> status. So MMC_ERR_NONE is perfectly valid for a status response filled with
> error bits.
If so, then the MMC core is full of bugs, needing fixes
that are *FAR* beyond scope of my patches.
Essentially every error check compares against MMC_ERR_NONE.
This distinction you're making between "controller" and
"card" seems unnatural -- and counterproductive -- in
this context. What the core code expects to see is fault
reports. It doesn't actually understand layering to any
relevant degree; all it cares about is whether the operation
it requested has succeeded or not.
> > And it's got to do that pretty much immediately, since when an error shows
> > up in the command, the data stage must not be performed. It's impractical
> > to consider delegating such triage to the core.
> >
>
> This is an architectural limitation in the MMC layer that affects the native
> protocol aswell. If you need it fixed, I'd say we have to do it in a proper,
> general manner.
So, I wait for patches from you which fix all those issues?
> Why can't you do what native controllers do, just fling the data out there and
> break when the card doesn't respond properly to it?
Because that would be a remarkably ... naive? ... way to
implement *any* protocol stack. If I were grading college
students again, any such implementation would be seriously
downgraded. It's a virtual certainty that throwing garbage
commands (like that "data") will make things break. At
best, it enters a recoverable fault mode, only wasting the
time used to recover from having thrown known-to-be garbage
bytes at the card. At worst ... devices become unrecoverable
with weaker provocations than that.
I sure hope you have heard that old chestnut, "Be liberal
in what you accept, and conservative in what you send."
That's an ancient principle for robust interoperation. The
first RFC describing it was RFC 760, but the principle
predates that 1980 document by at least a few years. The
way to apply that principle here is obvious: don't throw
known garbage commands at a card.
> >>> Having a simple flag in mmc_host would be much better.
> >> Perhaps. But there's a lot of value in consistency.
> >
> > Unless you strongly object, I'll go the flag route though. The thing is,
> > the IOS thing ("kitchen sink") will never vanish if it keeps growning at
> > every opportunity.
> >
>
> But if we keep inventing new systems ad-hoc, we'll have a much bigger mess to
> deal with.
State flags predate the notion of this "ios" thingie;
they're far from being an "ad-hoc" notion.
- Dave
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
next prev parent reply other threads:[~2007-06-22 21:18 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-10 19:57 [patch 0/4] MMC-over-SPI for 2.6.22-rc4-mm David Brownell
[not found] ` <200706101257.45278.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-10 20:05 ` [patch 1/4] MMC-over-SPI header updates David Brownell
[not found] ` <200706101305.53151.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-12 17:22 ` Pierre Ossman
[not found] ` <466ED661.1010407-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-12 18:06 ` David Brownell
[not found] ` <200706121106.42067.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-13 8:25 ` Pierre Ossman
[not found] ` <466FAA0C.9020102-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-13 21:33 ` David Brownell
[not found] ` <200706131433.21238.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-15 17:53 ` Pierre Ossman
[not found] ` <4672D202.3000901-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-16 18:50 ` David Brownell
[not found] ` <200706161150.58273.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-20 15:52 ` Pierre Ossman
[not found] ` <46794D3B.1060009-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-22 20:08 ` David Brownell
2007-06-10 20:06 ` [patch 2/4] MMC-over-SPI card driver update David Brownell
[not found] ` <200706101306.39081.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-12 17:28 ` Pierre Ossman
2007-06-10 20:07 ` [patch 3/4] MMC-over-SPI core updates David Brownell
[not found] ` <200706101307.11394.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-13 8:12 ` Pierre Ossman
[not found] ` <466FA700.2080009-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-14 0:53 ` David Brownell
[not found] ` <200706131753.47453.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-15 18:03 ` Pierre Ossman
[not found] ` <4672D474.4060707-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-16 21:16 ` David Brownell
[not found] ` <200706161416.17802.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-20 15:56 ` Pierre Ossman
[not found] ` <46794E1B.6010907-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-22 20:42 ` David Brownell
2007-06-10 20:08 ` [patch 4/4] MMC-over-SPI host driver David Brownell
[not found] ` <200706101308.07910.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-13 19:32 ` Pierre Ossman
[not found] ` <46704637.2090309-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-14 4:05 ` David Brownell
[not found] ` <200706132105.51711.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-15 18:26 ` Pierre Ossman
[not found] ` <4672D9C5.9080707-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-17 20:29 ` David Brownell
[not found] ` <200706171329.12709.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-20 16:20 ` Pierre Ossman
[not found] ` <467953E0.8050408-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-20 17:05 ` David Brownell
[not found] ` <20070620170511.EC564F31CB-ZcXrCSuhvln6VZ3dlLfH/g4gEjPzgfUyLrfjE7I9kuVHxeISYlDBzl6hYfS7NtTn@public.gmane.org>
2007-06-20 17:51 ` Pierre Ossman
[not found] ` <4679691C.2060803-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
2007-06-22 21:18 ` David Brownell [this message]
[not found] ` <200706221418.44214.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-30 18:46 ` Pierre Ossman
2007-07-12 18:14 ` David Brownell
2007-07-12 17:52 ` David Brownell
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=200706221418.44214.david-b@pacbell.net \
--to=david-b-ybekhbn/0ldr7s880joybq@public.gmane.org \
--cc=drzeus-mmc-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org \
--cc=hans-peter.nilsson-VrBV9hrLPhE@public.gmane.org \
--cc=mikael.starvik-VrBV9hrLPhE@public.gmane.org \
--cc=mike-UTnDXsALFwNjMdQLN6DIHgC/G2K4zDHf@public.gmane.org \
--cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.