From: Wolfgang Denk <wd@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2] Add Boundary Devices Nitrogen6X boards
Date: Sun, 10 Mar 2013 23:03:52 +0100 [thread overview]
Message-ID: <20130310220352.ED5432010CD@gemini.denx.de> (raw)
In-Reply-To: <513CB3F2.6080604@boundarydevices.com>
Dear Eric,
In message <513CB3F2.6080604@boundarydevices.com> you wrote:
>
> What we don't have is auto-detection and implementing this logic
> requires that we execute code outside of DDR (i.e. through SPL
> in internal RAM).
Correct.
> There's no question that a (more) universal binary would be helpful,
> but in practice, checking the DDR parts isn't that different from
> double-checking the CPU variant populated on a board.
I'm not sure what you want to tell me here. The thing is that you
don't want to maintain a dozen of different configurations, resulting
in a number of different, incompatible binary images, and you and
your users will always live in fear they might install the wrong image
and brick a system (OK, when you can boot from SDCard or similar
recovery will be less painful, but you still suffer from the
maintenance efforts).
> Troy's attempt at handling the CPU portion of things was nacked,
I don't remember this. But I guess the reason was in the
implementation, not in the idea?
> which is what prompted me to this architecture of multiple CPU
> configurations.
But this doesn't scale.
> > This is wrong then and needs to be fixed. get_ram_size() should be
> > used before relocation into RAM.
>
> Either you or I are missing something.
In any case I'm missing time to provide longer explanations...
> As it stands, there is no "execute before relocation into RAM".
> The CPU's ROM boot loader processes the settings in the DCD
> (essentially a set of register writes) and then copies the
> U-Boot code into DDR for execution.
I understand this, and I'm trying to point out that this is an
approach that is not useful in cases like yours where you have to
support a large number of different configurations.
I probably should point out that with such a setup you MUST NOT use
get_ram_size(), as it will write and modify the memory you are
executing from, so depending on a number of things it may happily
crash your system. get_ram_size() has always to be used before
running any code from the RAM that is going to be tested.
> The only way to change this is to use a first level loader that
> executes code within the internal RAM so the setup can be
> conditional.
Correct. In your situation this is the approach that shouldbe taken.
> Are you saying that submissions of board files that don't
> support SPL will be nacked, or only boards that want to
> support multiple memory configurations without SPL?
Please note that I did not NAK anything. I'm just trying to point out
deficiencies (and in my opinion prety major deficiencies) in the
submitted code, and to provide suggestions how to fix these. In my
experience, it is easier to get such fixes done before the code goes
into mainline - once it's in, both your own motivation and any backing
you can get from management levels for the required efforts for such a
rework will be in a much poorer state.
So I'm just aking suggestions. Do you by chancew feel you heard me
use that sweet, innocent tone of voice before? Well, then I can stop
here :-)
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
What is research but a blind date with knowledge? -- Will Harvey
next prev parent reply other threads:[~2013-03-10 22:03 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-10 0:04 [U-Boot] [PATCH V2] Add Boundary Devices Nitrogen6X boards Eric Nelson
2013-03-10 0:49 ` Troy Kisky
2013-03-10 8:02 ` Wolfgang Denk
2013-03-10 14:15 ` Eric Nelson
2013-03-10 7:59 ` Wolfgang Denk
2013-03-10 15:09 ` Eric Nelson
2013-03-10 15:45 ` Wolfgang Denk
2013-03-10 16:25 ` Eric Nelson
2013-03-10 22:03 ` Wolfgang Denk [this message]
2013-03-10 23:36 ` Eric Nelson
2013-03-11 11:15 ` Wolfgang Denk
2013-03-11 12:04 ` Stefano Babic
2013-03-11 13:18 ` Fabio Estevam
2013-03-11 13:44 ` Stefano Babic
2013-03-11 13:54 ` Fabio Estevam
2013-03-11 14:02 ` Eric Nelson
2013-03-11 14:30 ` Stefano Babic
2013-03-11 14:39 ` Tom Rini
2013-03-11 13:37 ` Eric Nelson
2013-03-11 16:48 ` Wolfgang Denk
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=20130310220352.ED5432010CD@gemini.denx.de \
--to=wd@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