[U-Boot] [PATCH] tools: imximage: add set bit command
Stefano Babic
sbabic at denx.de
Fri Mar 17 10:18:11 UTC 2017
On 16/03/2017 07:35, Peng Fan wrote:
> Add set bit command support.
> Usage: SET_BIT 4 [address] [bitmask]
>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> Cc: Stefano Babic <sbabic at denx.de>
> ---
> tools/imximage.c | 12 ++++++++++++
> tools/imximage.h | 4 +++-
> 2 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/tools/imximage.c b/tools/imximage.c
> index 0c43196..eb7e682 100644
> --- a/tools/imximage.c
> +++ b/tools/imximage.c
> @@ -23,6 +23,7 @@ static table_entry_t imximage_cmds[] = {
> {CMD_BOOT_OFFSET, "BOOT_OFFSET", "Boot offset", },
> {CMD_WRITE_DATA, "DATA", "Reg Write Data", },
> {CMD_WRITE_CLR_BIT, "CLR_BIT", "Reg clear bit", },
> + {CMD_WRITE_SET_BIT, "SET_BIT", "Reg set bit", },
> {CMD_CHECK_BITS_SET, "CHECK_BITS_SET", "Reg Check bits set", },
> {CMD_CHECK_BITS_CLR, "CHECK_BITS_CLR", "Reg Check bits clr", },
> {CMD_CSF, "CSF", "Command Sequence File", },
> @@ -204,6 +205,15 @@ static void set_dcd_param_v2(struct imx_header *imxhdr, uint32_t dcd_len,
> d->write_dcd_command.length = cpu_to_be16(4);
> d->write_dcd_command.param = DCD_WRITE_CLR_BIT_PARAM;
> break;
> + case CMD_WRITE_SET_BIT:
> + if ((d->write_dcd_command.tag == DCD_WRITE_DATA_COMMAND_TAG) &&
> + (d->write_dcd_command.param == DCD_WRITE_SET_BIT_PARAM))
> + break;
> + d = d2;
> + d->write_dcd_command.tag = DCD_WRITE_DATA_COMMAND_TAG;
> + d->write_dcd_command.length = cpu_to_be16(4);
> + d->write_dcd_command.param = DCD_WRITE_SET_BIT_PARAM;
> + break;
> /*
> * Check data command only supports one entry,
> */
> @@ -636,6 +646,7 @@ static void parse_cfg_cmd(struct imx_header *imxhdr, int32_t cmd, char *token,
> break;
> case CMD_WRITE_DATA:
> case CMD_WRITE_CLR_BIT:
> + case CMD_WRITE_SET_BIT:
> case CMD_CHECK_BITS_SET:
> case CMD_CHECK_BITS_CLR:
> value = get_cfg_value(token, name, lineno);
> @@ -686,6 +697,7 @@ static void parse_cfg_fld(struct imx_header *imxhdr, int32_t *cmd,
> switch(*cmd) {
> case CMD_WRITE_DATA:
> case CMD_WRITE_CLR_BIT:
> + case CMD_WRITE_SET_BIT:
> case CMD_CHECK_BITS_SET:
> case CMD_CHECK_BITS_CLR:
>
> diff --git a/tools/imximage.h b/tools/imximage.h
> index db8b9a3..78d48bb 100644
> --- a/tools/imximage.h
> +++ b/tools/imximage.h
> @@ -50,7 +50,8 @@
> #define DCD_VERSION 0x40
> #define DCD_WRITE_DATA_COMMAND_TAG 0xCC
> #define DCD_WRITE_DATA_PARAM 0x4
> -#define DCD_WRITE_CLR_BIT_PARAM 0xC
> +#define DCD_WRITE_CLR_BIT_PARAM 0xC
> +#define DCD_WRITE_SET_BIT_PARAM 0x1C
> #define DCD_CHECK_DATA_COMMAND_TAG 0xCF
> #define DCD_CHECK_BITS_SET_PARAM 0x14
> #define DCD_CHECK_BITS_CLR_PARAM 0x04
> @@ -62,6 +63,7 @@ enum imximage_cmd {
> CMD_BOOT_OFFSET,
> CMD_WRITE_DATA,
> CMD_WRITE_CLR_BIT,
> + CMD_WRITE_SET_BIT,
> CMD_CHECK_BITS_SET,
> CMD_CHECK_BITS_CLR,
> CMD_CSF,
>
Reviewed-by: Stefano Babic <sbabic at denx.de>
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
More information about the U-Boot
mailing list