From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V2 05/21] imximage: add expression evaluation
Date: Sun, 23 Sep 2012 16:56:01 +0200 [thread overview]
Message-ID: <505F2301.4080306@denx.de> (raw)
In-Reply-To: <1348281558-19520-6-git-send-email-troy.kisky@boundarydevices.com>
On 22/09/2012 04:39, Troy Kisky wrote:
> Basic expressions with order precedence is
> now supported.
> ie. (----3 + ((1+2*3)/--2 + --5 *(8/4))) is 16.
>
> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
> ---
Hi Troy,
> tools/imximage.c | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++----
> 1 file changed, 162 insertions(+), 10 deletions(-)
>
> diff --git a/tools/imximage.c b/tools/imximage.c
> index 1e120354..2c5a622 100644
I have some general considerations. First, if you plan to add support
for expression evaluation, this feature should be available generally
for mkimage, that means also other processors / architecture can profit
of it. It should be moved away from imximage.c code.
Then, you want also let that the preprocesso can parse the imximage
code. I can imagine that in such terms it could be then possible to
define in imximage.cfg something like:
#define DDR_VAL (1 <<17 | 3 << 7)
#define ADDRESS 0x0x53something
DATA 4 ADDRESS DDR_VAL
Else, why do we need the power of C preprocessor ?
If this is true, can you explain us which is the use case using the C
preprocessor and which is the one for the expression evaluator ? And why
do we need both ?
> --- a/tools/imximage.c
> +++ b/tools/imximage.c
> @@ -380,20 +380,172 @@ char *grab_token(char *dest, int size, char *src)
> return src;
> }
>
> +char precedence[] = {
> + /* ( + - * / & ^ | ) */
> + 0, 2, 2, 1, 1, 3, 4, 5, 6
> +};
> +char unary_operations[] = "(+-";
> +char binary_operations[] = " +-*/&^|)";
> +
> +uint32_t do_func(uint32_t val1, uint32_t val2, int op)
> +{
> + switch (op) {
> + case 1:
> + return val1 + val2;
> + case 2:
> + return val1 - val2;
> + case 3:
> + return val1 * val2;
> + case 4:
> + return val1 / val2;
> + case 5:
> + return val1 & val2;
> + case 6:
> + return val1 ^ val2;
> + case 7:
> + return val1 | val2;
> + }
> + fprintf(stderr, "Error: in func %s: val1=%d val2=%d op = %d\n",
> + __func__, val1, val2, op);
> + exit(EXIT_FAILURE);
> +}
> +
> +int find_op(char c, char *p)
> +{
> + int i;
> + for (i = 0; ; i++) {
> + if (c == p[i])
> + return i;
> + if (!p[i])
> + break;
> + }
> + return -1;
> +}
> +
> +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> +
> static uint32_t get_cfg_value(struct data_src *ds, uint32_t *pval)
> {
> char *endptr;
> - uint32_t value;
> + int op_i = 0;
> + int val_i = 0;
> + unsigned char op[16];
> + uint32_t val[16];
> + int unary = 1;
> + char *p;
>
> - if (skip_separators(ds))
> - return -1;
> - errno = 0;
> - value = strtoul(ds->p, &endptr, 16);
> - if (errno || (ds->p == endptr))
> - return -1;
> - *pval = value;
> - ds->p = endptr;
> - return 0;
> + p = ds->p;
> + for (;;) {
> + char c;
> + int i, j;
> + char *ops = unary ? unary_operations : binary_operations;
> +
> + if (unary) {
> + ds->p = p;
> + if (skip_separators(ds))
> + return -1;
> + p = ds->p;
> + c = *p;
> + } else {
> + for (;;) {
> + c = *p;
> + if ((c != ' ') && (c != '\t'))
> + break;
> + p++;
> + }
> + }
> + i = find_op(c, ops);
> + debug("%d,%c,%d:%s\n", i, c, unary, p);
> + if ((i < 0) && unary) {
> + if (val_i >= ARRAY_SIZE(val))
> + return -1;
> + errno = 0;
> + val[val_i++] = strtoul(p, &endptr, 16);
> + if (errno || (p == endptr)) {
> + ds->p = p;
> + return -1;
> + }
> + p = endptr;
> + unary = 0;
> + debug("val[%d]=%x,%d,%d\n", val_i - 1, val[val_i - 1],
> + op_i, val_i);
> +do_unary:
> + while (op_i) {
> + j = op[op_i - 1];
> + if (!(j & 0x80))
> + break;
> + op_i--;
> + val[val_i - 1] = do_func(0,
> + val[val_i - 1], j & 0x7f);
> + debug("un:%d,%x,%d,%d\n", val[val_i - 1], j,
> + op_i, val_i);
> + }
> + continue;
> + }
> + if (i < 0) {
> + c = 0;
> + i = 8;
> + } else {
> + p++;
> + }
> + if (c == '(') {
> + if (op_i >= ARRAY_SIZE(op))
> + return -1;
> + op[op_i++] = i;
> + debug("op[%d]=%x,%d,%d\n", op_i - 1, op[op_i - 1],
> + op_i, val_i);
> + unary = 1;
> + continue;
> + }
> + for (;;) {
> + if (!op_i || unary)
> + break;
> + j = op[op_i - 1];
> + if (j == 0) {
> + if (c == ')') {
> + op_i--;
> + goto do_unary;
> + }
> + break;
> + }
> + if ((j & 0x80)) {
> + op_i--;
> + val[val_i - 1] = do_func(0,
> + val[val_i - 1], j & 0x7f);
> + debug("unary:%d,%x\n", val[val_i - 1], j);
> + continue;
> + }
> + if (precedence[i] < precedence[j])
> + break;
> + if (val_i < 2)
> + return -1;
> + op_i--;
> + val[val_i - 2] = do_func(val[val_i - 2],
> + val[val_i - 1], j);
> + val_i--;
> + debug("binary:%d,%x,%d,%d\n", val[val_i - 1], j,
> + op_i, val_i);
> + }
> + if (c == ')') {
> + fprintf(stderr, "Error: unmatched parenthesis\n");
> + return -1;
> + }
> + if (i == 8) {
> + if ((op_i != 0) || (val_i != 1)) {
> + fprintf(stderr, "Error: syntax %d %d\n",
> + op_i, val_i);
> + return -1;
> + }
> + ds->p = p;
> + *pval = val[0];
> + return 0;
> + }
> + if (op_i >= ARRAY_SIZE(op))
> + return -1;
> + op[op_i++] = i | (unary << 7);
> + debug("op[%d]=%x,%d,%d\n", op_i - 1, op[op_i - 1], op_i, val_i);
> + unary = 1;
> + }
> }
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
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
=====================================================================
next prev parent reply other threads:[~2012-09-23 14:56 UTC|newest]
Thread overview: 202+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-19 0:02 [U-Boot] (no subject) Troy Kisky
2012-09-19 0:02 ` [U-Boot] [PATCH 01/11] imximage: make header variable length Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 02/11] imximage: check dcd_len as entries added Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 03/11] imximage: enable word writes for version2 header Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 04/11] imximage: cleanup parsing Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 05/11] imximage: add expression evaluation Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 06/11] imximage: add plugin commands Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 07/11] imximage.cfg: run files through C preprocessor Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 08/11] mx6: add plugin file for use with imximage.cfg Troy Kisky
2012-09-19 1:40 ` Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 09/11] mx6qsabrelite: imximage.cfg: use symbols instead of hardcoded constants Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 10/11] mx6qsabrelite: imximage.cfg: allow plugin to work Troy Kisky
2012-09-19 0:03 ` [U-Boot] [PATCH 11/11] RFC mx6qsabrelite: imximage.cfg: enable plugin mode Troy Kisky
2012-09-19 1:52 ` Troy Kisky
2012-09-22 2:38 ` [U-Boot] [PATCH V2 00/21] Add mx6solo/mx6duallite support Troy Kisky
2012-09-22 2:38 ` [U-Boot] [PATCH V2 01/21] imximage: make header variable length Troy Kisky
2012-09-23 10:57 ` Stefano Babic
2012-09-24 20:30 ` Troy Kisky
2012-09-25 11:08 ` Stefano Babic
2012-09-22 2:38 ` [U-Boot] [PATCH V2 02/21] imximage: check dcd_len as entries added Troy Kisky
2012-09-23 11:05 ` Stefano Babic
2012-09-24 20:54 ` Troy Kisky
2012-09-25 11:12 ` Stefano Babic
2012-09-22 2:39 ` [U-Boot] [PATCH V2 03/21] imximage: enable word writes for version2 header Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 04/21] imximage: cleanup parsing Troy Kisky
2012-09-23 11:08 ` Stefano Babic
2012-09-24 20:59 ` Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 05/21] imximage: add expression evaluation Troy Kisky
2012-09-23 14:56 ` Stefano Babic [this message]
2012-09-24 21:18 ` Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 06/21] imximage: add plugin commands Troy Kisky
2012-09-23 15:38 ` Stefano Babic
2012-09-24 21:46 ` Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 07/21] imximage.cfg: run files through C preprocessor Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 08/21] mx6: add plugin file for use with imximage.cfg Troy Kisky
2012-09-22 4:06 ` Vikram Narayanan
2012-09-23 10:17 ` Stefano Babic
2012-09-23 16:23 ` Eric Nelson
2012-09-23 17:08 ` Stefano Babic
2012-09-23 23:29 ` Eric Nelson
2012-09-24 7:22 ` Stefano Babic
2012-09-24 13:48 ` Eric Nelson
2012-09-24 15:17 ` Stefano Babic
2012-09-24 22:23 ` Troy Kisky
2012-09-25 12:13 ` Stefano Babic
2012-09-24 20:46 ` Troy Kisky
2012-09-25 11:57 ` Stefano Babic
2012-09-22 2:39 ` [U-Boot] [PATCH V2 09/21] mx6q_4x_mt41j128.cfg: use symbols instead of hardcoded constants Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 10/21] mx6q_4x_mt41j128.cfg: allow plugin to work Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 11/21] mx6q_4x_mt41j128.cfg: enable plugin mode Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 12/21] mx6q_4x_mt41j128.cfg: add comments Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 13/21] mx6q_4x_mt41j128.cfg: use ddr3 mode for reset Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 14/21] mx6q_4x_mt41j128.cfg: skip initiailizing non-existent memory Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 15/21] mx6q_4x_mt41j128.cfg: reorder for more efficient storage Troy Kisky
2012-09-22 17:27 ` Fabio Estevam
2012-09-22 17:34 ` Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 16/21] mx6q_4x_mt41j128.cfg: force ZQ calibration Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 17/21] mx6: soc: add get_cpu_type Troy Kisky
2012-09-22 2:50 ` Fabio Estevam
2012-09-22 17:07 ` Troy Kisky
2012-09-23 14:59 ` Stefano Babic
2012-09-22 2:39 ` [U-Boot] [PATCH V2 18/21] arch-mx6: add mx6dl_pins.h Troy Kisky
2012-09-22 4:10 ` Vikram Narayanan
2012-09-22 17:17 ` Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 19/21] mx6qsabrelite: add support for mx6 solo/duallite Troy Kisky
2012-09-22 4:12 ` Vikram Narayanan
2012-09-22 17:24 ` Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 20/21] mx6q_4x_mt41j128.cfg: add mx6 solo/duallite support Troy Kisky
2012-09-22 2:39 ` [U-Boot] [PATCH V2 21/21] mx6qsabrelite: change CONFIG_SYS_PROMPT Troy Kisky
2012-09-22 6:21 ` [U-Boot] [PATCH V2 00/21] Add mx6solo/mx6duallite support Dirk Behme
2012-09-22 16:53 ` Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 00/32] " Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 01/32] imximage: check dcd_len as entries added Troy Kisky
2012-10-20 15:45 ` Stefano Babic
2012-10-04 1:47 ` [U-Boot] [PATCH V3 02/32] imximage: remove redundant setting of app_dest_ptr Troy Kisky
2012-10-08 13:17 ` Stefano Babic
2012-10-20 15:46 ` Stefano Babic
2012-10-04 1:47 ` [U-Boot] [PATCH V3 03/32] imximage: move flash_offset check to common location Troy Kisky
2012-10-08 13:19 ` Stefano Babic
2012-10-18 18:40 ` Troy Kisky
2012-10-19 8:01 ` Stefano Babic
2012-10-20 15:46 ` Stefano Babic
2012-10-04 1:47 ` [U-Boot] [PATCH V3 04/32] imximage: fix size of image to load Troy Kisky
2012-10-20 15:47 ` Stefano Babic
2012-10-04 1:47 ` [U-Boot] [PATCH V3 05/32] imximage: delay setting of image size Troy Kisky
2012-10-20 15:47 ` Stefano Babic
2012-10-04 1:47 ` [U-Boot] [PATCH V3 06/32] imximage: change parameters to set_imx_hdr Troy Kisky
2012-10-20 15:48 ` Stefano Babic
2012-10-04 1:47 ` [U-Boot] [PATCH V3 07/32] imximage: make set_imx_hdr_v1/v2 easier to read Troy Kisky
2012-10-20 15:48 ` Stefano Babic
2012-10-04 1:47 ` [U-Boot] [PATCH V3 08/32] imximage: make header variable length Troy Kisky
2012-10-20 15:52 ` Stefano Babic
2012-10-21 1:31 ` Troy Kisky
2012-10-21 8:35 ` Stefano Babic
2012-10-22 21:03 ` Troy Kisky
2012-11-28 1:31 ` [U-Boot] [PATCH V4 00/11] imximage series Troy Kisky
2012-11-28 1:31 ` [U-Boot] [PATCH V4 01/11] imximage: mx53 needs transfer length a multiple of 512 Troy Kisky
2012-11-28 9:27 ` Wolfgang Denk
2012-11-28 18:18 ` Troy Kisky
2012-11-28 20:25 ` Wolfgang Denk
2012-11-28 21:05 ` Troy Kisky
2012-11-28 21:35 ` Wolfgang Denk
2012-11-29 2:42 ` Troy Kisky
2012-11-29 5:28 ` Wolfgang Denk
2012-12-03 9:23 ` Stefano Babic
2012-12-03 9:12 ` Stefano Babic
2012-11-28 18:26 ` Troy Kisky
2012-11-28 10:34 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 02/11] imximage: make header variable length Troy Kisky
2012-11-28 10:42 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 03/11] imximage: remove static imximage_version Troy Kisky
2012-11-28 10:43 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 04/11] imximage: prepare to move static variables to struct data_src Troy Kisky
2012-11-28 9:38 ` Wolfgang Denk
2012-11-28 18:36 ` Troy Kisky
2012-11-28 20:30 ` Wolfgang Denk
2012-11-28 1:31 ` [U-Boot] [PATCH V4 05/11] imximage: change parameters for set_dcd_val/set_imx_hdr Troy Kisky
2012-11-28 10:43 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 06/11] imximage: move set_imx_hdr to struct data_src Troy Kisky
2012-11-28 10:45 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 07/11] imximage: move set_dcd_val " Troy Kisky
2012-11-28 10:47 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 08/11] imximage: enable word writes for version2 header Troy Kisky
2012-11-28 9:39 ` Wolfgang Denk
2012-11-28 20:40 ` Troy Kisky
2012-12-04 8:23 ` Stefano Babic
2012-11-28 10:47 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 09/11] tools: add parse_helper file Troy Kisky
2012-11-28 9:41 ` Wolfgang Denk
2012-11-28 10:48 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 10/11] imximage: use parse_helper functions Troy Kisky
2012-11-28 10:48 ` Liu Hui-R64343
2012-11-28 1:31 ` [U-Boot] [PATCH V4 11/11] parse_helper: add expression evaluation Troy Kisky
2012-11-28 10:49 ` Liu Hui-R64343
2012-11-28 9:30 ` [U-Boot] [PATCH V4 00/11] imximage series Wolfgang Denk
2012-11-28 18:29 ` Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 09/32] imximage: remove static imximage_version Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 10/32] imximage: prepare to move static variables to struct data_src Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 11/32] imximage: change parameters for set_dcd_val/set_imx_hdr Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 12/32] imximage: move set_imx_hdr to struct data_src Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 13/32] imximage: move set_dcd_val " Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 14/32] imximage: enable word writes for version2 header Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 15/32] tools: add parse_helper file Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 16/32] imximage: use parse_helper functions Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 17/32] imximage.cfg: run files through C preprocessor Troy Kisky
2012-10-07 18:19 ` Eric Nelson
2012-10-08 19:11 ` Troy Kisky
2012-10-08 13:38 ` Stefano Babic
2012-10-08 21:48 ` Troy Kisky
2012-10-10 2:03 ` Troy Kisky
2012-10-11 11:11 ` Stefano Babic
2012-10-11 20:33 ` Troy Kisky
2012-10-11 22:27 ` stefano babic
2012-10-11 23:15 ` Tom Rini
2012-10-13 10:11 ` [U-Boot] File placement in Soc / board dirs and make issues (was: [PATCH V3 17/32] imximage.cfg: run files through C preprocessor) Albert ARIBAUD
2012-10-13 15:17 ` Tom Rini
2012-10-14 8:37 ` [U-Boot] File placement in Soc / board dirs and make issues Albert ARIBAUD
2012-10-15 1:24 ` Tom Rini
2012-10-23 6:30 ` Albert ARIBAUD
2012-10-17 20:32 ` [U-Boot] [PATCH V3 17/32] imximage.cfg: run files through C preprocessor Troy Kisky
2012-10-17 21:05 ` Tom Rini
2012-10-17 21:38 ` Troy Kisky
2012-10-17 22:29 ` Tom Rini
2012-10-04 1:47 ` [U-Boot] [PATCH V3 18/32] mx6q_4x_mt41j128.cfg: use symbols instead of hardcoded constants Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 19/32] mx6q_4x_mt41j128.cfg: add comments Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 20/32] mx6q_4x_mt41j128.cfg: use ddr3 mode for reset Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 21/32] mx6q_4x_mt41j128.cfg: skip initiailizing non-existent memory Troy Kisky
2012-10-07 21:01 ` Eric Nelson
2012-10-04 1:47 ` [U-Boot] [PATCH V3 22/32] mx6q_4x_mt41j128.cfg: force ZQ calibration Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 23/32] mx6: soc: update get_cpu_rev and get_imx_type for mx6solo/sololite Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 24/32] mx6: use CONFIG_MX6 instead of CONFIG_MX6Q Troy Kisky
2012-10-08 13:41 ` Stefano Babic
2012-10-08 21:49 ` Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 25/32] imx-common: cpu: add imx_ddr_size Troy Kisky
2012-10-08 13:06 ` Stefano Babic
2012-10-08 21:35 ` Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 26/32] arch-mx6: add mx6dl_pins.h Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 27/32] mx6qsabrelite: add support for mx6 solo/duallite Troy Kisky
2012-10-04 3:23 ` Otavio Salvador
2012-10-04 23:34 ` Troy Kisky
2012-10-08 13:47 ` Stefano Babic
2012-10-04 1:47 ` [U-Boot] [PATCH V3 28/32] mx6q_4x_mt41j128.cfg: add mx6 solo/duallite support Troy Kisky
2012-10-08 18:46 ` Eric Nelson
2012-10-08 21:08 ` Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 29/32] Add boards for sabrelite variants mx6s(solo) and mx6dl(duallite) Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 30/32] mx6qsabrelite: change CONFIG_SYS_PROMPT Troy Kisky
2012-10-04 3:00 ` Otavio Salvador
2012-10-04 23:28 ` Troy Kisky
2012-10-08 13:54 ` Stefano Babic
2012-10-08 21:58 ` Troy Kisky
2012-10-08 22:05 ` Fabio Estevam
2012-10-08 22:18 ` stefano babic
2012-10-08 22:22 ` Eric Nelson
2012-10-08 22:21 ` Eric Nelson
2012-10-04 1:47 ` [U-Boot] [PATCH V3 31/32] parse_helper: add expression evaluation Troy Kisky
2012-10-04 1:47 ` [U-Boot] [PATCH V3 32/32] imx-mkimage.h: use base + offset syntax Troy Kisky
2012-10-04 10:18 ` [U-Boot] [PATCH V3 00/32] Add mx6solo/mx6duallite support Albert ARIBAUD
2012-10-04 14:36 ` Eric Nelson
2012-10-04 19:51 ` Albert ARIBAUD
2012-10-04 14:52 ` Eric Nelson
2012-10-08 13:15 ` Stefano Babic
2012-10-08 23:58 ` Troy Kisky
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=505F2301.4080306@denx.de \
--to=sbabic@denx.de \
--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