public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
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

  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