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 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.