Chander, You should add a description of the new label to doc/README.pxe.
Otherwise, it looks good. Jason On Wed, Sep 05, 2012 at 05:26:17AM -0400, Chander Kashyap wrote: > Now DT support is becomming common for all new SoC's. Hence it is better to > have option for getting specific FDT from the remote server. > > This patch adds support for new lable i.e. fdt. If fdt_addr is specified > then load fdt blob from the remote server to fdt_address. > > Signed-off-by: Chander Kashyap <chander.kash...@linaro.org> > --- > Changes in v2: Removed the duplicate code. > > common/cmd_pxe.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c > index 6b31dea..0c81e08 100644 > --- a/common/cmd_pxe.c > +++ b/common/cmd_pxe.c > @@ -450,6 +450,7 @@ struct pxe_label { > char *kernel; > char *append; > char *initrd; > + char *fdt; > int attempted; > int localboot; > struct list_head list; > @@ -517,6 +518,9 @@ static void label_destroy(struct pxe_label *label) > if (label->initrd) > free(label->initrd); > > + if (label->fdt) > + free(label->fdt); > + > free(label); > } > > @@ -541,6 +545,9 @@ static void label_print(void *data) > > if (label->initrd) > printf("\t\tinitrd: %s\n", label->initrd); > + > + if (label->fdt) > + printf("\tfdt: %s\n", label->fdt); > } > > /* > @@ -633,6 +640,15 @@ static void label_boot(struct pxe_label *label) > */ > bootm_argv[3] = getenv("fdt_addr"); > > + /* if fdt label is defined then get fdt from server */ > + if (bootm_argv[3] && label->fdt) { > + if (get_relfile_envaddr(label->fdt, "fdt_addr") < 0) { > + printf("Skipping %s for failure retrieving fdt\n", > + label->name); > + return; > + } > + } > + > if (bootm_argv[3]) > bootm_argc = 4; > > @@ -658,6 +674,7 @@ enum token_type { > T_DEFAULT, > T_PROMPT, > T_INCLUDE, > + T_FDT, > T_INVALID > }; > > @@ -685,6 +702,7 @@ static const struct token keywords[] = { > {"append", T_APPEND}, > {"initrd", T_INITRD}, > {"include", T_INCLUDE}, > + {"fdt", T_FDT}, > {NULL, T_INVALID} > }; > > @@ -1074,6 +1092,11 @@ static int parse_label(char **c, struct pxe_menu *cfg) > err = parse_sliteral(c, &label->initrd); > break; > > + case T_FDT: > + if (!label->fdt) > + err = parse_sliteral(c, &label->fdt); > + break; > + > case T_LOCALBOOT: > err = parse_integer(c, &label->localboot); > break; > -- > 1.7.9.5 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot