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

Reply via email to