[U-Boot] [PATCH] itest: Add bitwise and operator

Eric Nelson
2013-05-03T19:22:33Z

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 <eric.nelson@boundarydevices.com>
>> ---
>> 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 <op> [*]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