From: Jerry Van Baren <gerald.vanbaren@smiths-aerospace.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] New commands
Date: Wed, 16 May 2007 14:42:24 -0400 [thread overview]
Message-ID: <464B5090.9020106@smiths-aerospace.com> (raw)
In-Reply-To: <406A31B117F2734987636D6CCC93EE3C017BA168@ehost011-3.exch011.intermedia.net>
Leonid wrote:
> On Wednesday, May 16, 2007 5:26 AM Wolfgang Denk:
>>> Because command identification are 64bit value and U-BOOT has 63
>>> commands now.
>>> We need extend unsigned long long value.
>
>> Unfortunately the C standard does not define any longer integer data
>> types that can be used directly in the C preprocessor.
>
>>> What proper solution is?
>
>> Get rid of the existing coee and come up with a completely new
>> implementation. But this is a non-trivial task.
>
> There is actually an approach in place, virtually converting single
> u-boot command into root of command tree. See for example how "nand"
> command (or shall I say "nand" tree?) is implemented. Wolfgang, do you
> approve this way of doing or it had sneaked into u-boot "illegally"?
>
> Of course, this is only half-solution which can provide temporary
> relief. As a matter of fact, I'm using it myself for my proprietary
> commands.
>
> In my mind, there are two (not mutually excluding) generic ways to
> proceed (backward compatibility will be preserved of course meaning old
> scripts will be still working).
>
> 1) Strictly hierarchical "CISCO-like" CLI instead of "flat" u-boot
> scheme. There are several existing implementations of such CLI which can
> be used.
>
> 2) Further advance of "bash"-like shell (hush is used in u-boot right
> now). Existing shell lacks many features one is used to see in
> Linux/Unix shells. It's highly questionable though whether it makes
> sense to add u-boot specific commands in there, making u-boot shell
> scripts incompatible with Linux ones.
>
> Best regards,
>
> Leonid.
Hi Leonid,
I think you are missing the fundamental part of the problem: u-boot uses
a #defined bitmap to enable and disable commands at compile time. The
#defined bitmap can hold, at most, 64 bits and 63 of those bits are
used. The fundamental limitation stems from the desire to
enable/disable commands at compile time in conjunction with how many
bits gcc (actually, the preprocessor) supports for #if conditional
compilation. There are also implicit desires to use & and | to combine
the #defined bit flags.
This has come up a couple of times, but no good solution has shaken out.
At one time I proposed simply creating a second set of 64 bit command
enable/disable #defines, but Wolfgang wasn't too keen on that solution.
I really cannot think of any other way to maintain the current method
of compile-time selection and add expansion. Discussion thread here:
<http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/24647>
I personally sidestepped the issue by enabling and disabling my new
"fdt" command based on whether CONFIG_OF_LIBFDT was defined or not,
thereby not needing to use the last command control bit in the #define.
gvb
next prev parent reply other threads:[~2007-05-16 18:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-16 10:23 [U-Boot-Users] cache and buffer problems chark_uboot at 126.com
2007-05-16 10:46 ` [U-Boot-Users] New commands Monstr at seznam.cz
2007-05-16 12:26 ` Wolfgang Denk
2007-05-16 13:15 ` Monstr at seznam.cz
2007-05-16 17:02 ` Leonid
2007-05-16 18:42 ` Jerry Van Baren [this message]
2007-05-16 19:17 ` Leonid
2007-05-16 20:01 ` 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=464B5090.9020106@smiths-aerospace.com \
--to=gerald.vanbaren@smiths-aerospace.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