From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Nelson Date: Fri, 03 May 2013 12:22:33 -0700 Subject: [U-Boot] [PATCH] itest: Add bitwise and operator In-Reply-To: <20130503190808.9404C38044A@gemini.denx.de> References: <1367606863-14846-1-git-send-email-eric.nelson@boundarydevices.com> <20130503190808.9404C38044A@gemini.denx.de> Message-ID: <51840E79.3040309@boundarydevices.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Wolfgang, On 05/03/2013 12:08 PM, Wolfgang Denk wrote: > Dear Eric Nelson, > > In message <1367606863-14846-1-git-send-email-eric.nelson@boundarydevices.com> you wrote: >> Signed-off-by: Eric Nelson >> --- >> common/cmd_itest.c | 4 ++++ >> doc/README.commands.itest | 10 +++++++++- >> 2 files changed, 13 insertions(+), 1 deletion(-) >> >> diff --git a/common/cmd_itest.c b/common/cmd_itest.c >> index 2c8e5d0..0629b09 100644 >> --- a/common/cmd_itest.c >> +++ b/common/cmd_itest.c >> @@ -38,6 +38,7 @@ >> #define GT 3 >> #define LE 4 >> #define GE 5 >> +#define AND 6 > > It does not make much sense to me to add AND, when you not also add > OR (and eventually XOR). > I only needed to test a bit. > Also, now the help message is no longer correct - it says: > > 189 U_BOOT_CMD( > 190 itest, 4, 0, do_itest, > 191 "return true/false on integer compare", > 192 "[.b, .w, .l, .s] [*]value1 [*]value2" > 193 ); > > but we no longer compare... > > Hm, re-reading this I think this is the wrong approach. This stuff > does not belong into the "itest" command which really is for > comparing, and NOT for operations on the arguments. > > If you need operations, then please use "setexpr" - which already has > all of this, and more. > As always, thanks for the guidance. I hadn't noticed that setexpr supported indirection. In case this helps someone else, I was looking for a way to detect Android "recovery" mode, which is flagged by bit seven in the SRC_GPR10 register (address 0x020d8044). And setexpr can be used like so: U-Boot > md.l 0x020d8044 020d8044: 00000080 .... U-Boot > setexpr rval *0x020D8044 \& 0x80 U-Boot > print rval rval=80 U-Boot > setexpr rval *0x020D8044 \& 0x40 U-Boot > print rval rval=0 Regards, Eric