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 <[email protected]> > Cc: Stefano Babic <[email protected]> > --- > 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 <[email protected]> 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: [email protected] ===================================================================== _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

