[U-Boot] [PATCH] pxe: Fix pxe boot with FIT image

Wenbin Song wenbin.song at nxp.com
Mon Aug 29 05:20:37 CEST 2016


Hi,  

What would you advise?

Thanks.


Best Regards
Wenbin Song

> -----Original Message-----
> From: Wenbin song [mailto:wenbin.song at nxp.com]
> Sent: Thursday, August 04, 2016 3:45 PM
> To: sjg at chromium.org; bmeng.cn at gmail.com; hs at denx.de;
> p.marczak at samsung.com; sr at denx.de; york sun <york.sun at nxp.com>; u-
> boot at lists.denx.de; Mingkai Hu <mingkai.hu at nxp.com>; Wenbin Song
> <wenbin.song at nxp.com>; Qianyu Gong <qianyu.gong at nxp.com>; Shaohui Xie
> <shaohui.xie at nxp.com>; zhiqian.hou at nxp.com
> Subject: [PATCH] pxe: Fix pxe boot with FIT image
> 
> From: York Sun <york.sun at nxp.com>
> 
> When FIT image is used, a single image provides kernel, device tree and
> optionally ramdisk. Argc and argv need to be adjusted to support this.
> 
> Signed-off-by: York Sun <york.sun at nxp.com>
> ---
>  cmd/pxe.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/cmd/pxe.c b/cmd/pxe.c
> index 9434a18..0a07f14 100644
> --- a/cmd/pxe.c
> +++ b/cmd/pxe.c
> @@ -620,7 +620,7 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label
> *label)
>  	char initrd_str[22];
>  	char mac_str[29] = "";
>  	char ip_str[68] = "";
> -	int bootm_argc = 3;
> +	int bootm_argc = 2;
>  	int len = 0;
>  	ulong kernel_addr;
>  	void *buf;
> @@ -652,8 +652,6 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label
> *label)
>  		strcpy(bootm_argv[2], getenv("ramdisk_addr_r"));
>  		strcat(bootm_argv[2], ":");
>  		strcat(bootm_argv[2], getenv("filesize"));
> -	} else {
> -		bootm_argv[2] = "-";
>  	}
> 
>  	if (get_relfile_envaddr(cmdtp, label->kernel, "kernel_addr_r") < 0) { @@
> -785,8 +783,11 @@ static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label
> *label)
>  	if (!bootm_argv[3])
>  		bootm_argv[3] = getenv("fdt_addr");
> 
> -	if (bootm_argv[3])
> +	if (bootm_argv[3]) {
> +		if (!bootm_argv[2])
> +			bootm_argv[2] = "-";
>  		bootm_argc = 4;
> +	}
> 
>  	kernel_addr = genimg_get_kernel_addr(bootm_argv[1]);
>  	buf = map_sysmem(kernel_addr, 0);
> --
> 2.1.0.27.g96db324



More information about the U-Boot mailing list