From: Larry Johnson <lrj@acm.org>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] ppc4xx: Refactor ECC POST for AMCC Denali core
Date: Mon, 14 Jan 2008 13:12:03 -0500 [thread overview]
Message-ID: <478BA5F3.3060000@acm.org> (raw)
In-Reply-To: <478B9459.50103@ge.com>
Jerry Van Baren wrote:
> Stefan Roese wrote:
>> Hi Jerry,
>>
>> On Monday 14 January 2008, Jerry Van Baren wrote:
>
> [snip]
Hi Stefan and Jerry,
I just sent a response to Jerry's original e-mail, before seeing these
comments.
>>> As you should have picked up by now, a sync (forcing all I/O to
>>> complete) followed by eieio is silly - the eieio is superfluous. Seeing
>>> syncs/isyncs/eieios sprinkled in code is an indication that the author
>>> didn't understand what was going on and, as a result, kept hitting the
>>> problem with a bigger and bigger hammer until it appeared to have gone
>>> away.
>>
>> Now I'm glad that I'm not the author of this code. ;) But I admit that
>> I did use this "hammer" in the past.
>
> As have we all. The only difference is that most of us don't get
> caught. ;-) Open source and git: it both exposes and attributes all
> stupidity. :-D
So, unlike proprietary code, it gets fixed. :-)
> [snip]
>
>> From what I see, the ECC test code uses in_be32() and friends to
>> access the memory. And these access functions have all necessary
>> barriers already built into. So most likely the additional barriers
>> were never necessary at all. Or perhaps the code was changed from
>> using pointer access to in_be32() access.
>>
>> Nevertheless the changes from Larry are looking good to me. But I also
>> forwarded them to the original author of the code for review.
>
> Good, that is what I wanted to get across - someone familiar with the
> code and the processor reviews what, why, when, and how (Larry, you, the
> original author, the list, etc.).
>
> I figured that there must have been barriers that didn't show up in the
> patch since it "mostly works." I'm suspicious that there is a missing
> or misplaced barrier. The "sync ; eieio" pixie dust that Larry removed
> makes me suspicious that something is missing going into the test. In
> that case, the removed "sync" probably *IS* necessary, but that needs to
> be understood and commented (and possibly moved to a better location).
I'm not convinced about in_be32() et al. yet. Section 2.10.3 of the AMCC
PPC440 User's manual says that an "msync" (sync) is required between the
memory access and the control-register access. ("mbar" (eieio) is not
sufficient because the control-register access is not treated as I/O.)
If I'm reading these correctly, in_be32() does a "sync", load, "twi"
(which I don't understand), and "isync". out_be32() does a "sync" and a
store. Thus, neither force completion of the I/O before exiting.
Am I right then that I should include a specific sync before accessing
the SDRAM control registers?
>> Thanks again for your comments.
>>
>> /me goes to mark jvb's mail as important to easier find it as
>> reference. :)
>
> :-) Thanks.
>
>> Best regards,
>> Stefan
>
> Ditto,
> gvb
Best regards,
Larry
next prev parent reply other threads:[~2008-01-14 18:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-13 7:33 [U-Boot-Users] [PATCH] ppc4xx: Refactor ECC POST for AMCC Denali core Larry Johnson
2008-01-14 14:31 ` Jerry Van Baren
2008-01-14 16:40 ` Stefan Roese
2008-01-14 16:56 ` Jerry Van Baren
2008-01-14 18:12 ` Larry Johnson [this message]
2008-01-15 9:05 ` Stefan Roese
2008-01-14 17:44 ` Larry Johnson
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=478BA5F3.3060000@acm.org \
--to=lrj@acm.org \
--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 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.