pxe: Fix pxe boot with FIT image
PATCH v3 1/2 pxe: Fix pxe boot with FIT image
From: York Sun <[email protected]>
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.
Test cases:
1. Booting with legacy images
2. Booting with legacy images without initrd
3. Booting with FIT image
Test commands:
1. pxe get && pxe boot
2. sysboot
---
Changes for v2: no change
--- cmd/pxe.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
cmd/pxe.c +5 -4
@@ -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 );
Signature · 1 line
2.1.0.27.g96db324
PATCH v3 2/2 pxe: Modify README to add the description about FIT image
Use environment variable "kernel_addr_r" to indicate the location in RAM where FIT image will be stored.
Use label command "kernel" to indicate which <path> the FIT image at.
---
Changes for v2: Fixup the email address of author.
--- doc/README.pxe | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
doc/README.pxe +6 -6
@@ -78,9 +78,9 @@ pxe boot address of the tftp server from which other files will be retrieved. kernel_addr_r, initrd_addr_r - locations in RAM at which 'pxe boot' will - store the kernel and initrd it retrieves from tftp. These locations will - be passed to the bootm command to boot the kernel. These environment - variables are required to be set. + store the kernel(or FIT image) and initrd it retrieves from tftp. These + locations will be passed to the bootm command to boot the kernel. These + environment variables are required to be set. fdt_addr_r - location in RAM at which 'pxe boot' will store the fdt blob it retrieves from tftp. The retrieval is possible if 'fdt' label is defined in
@@ -138,9 +138,9 @@ menu default - set this label as the default label to boot; this is specified in a different way kernel <path> - if this label is chosen, use tftp to retrieve the kernel - at <path>. it will be stored at the address indicated in - the kernel_addr_r environment variable, and that address - will be passed to bootm to boot this kernel. + (or FIT image) at <path>. it will be stored at the address + indicated in the kernel_addr_r environment variable, and + that address will be passed to bootm to boot this kernel. append <string> - use <string> as the kernel command line when booting this label.
Signature · 1 line
2.1.0.27.g96db324
PATCH v3 2/2 pxe: Modify README to add the description about FIT image
Quoted 5 lines · Wenbin Song
Use environment variable "
kernel_addr_r" to indicate the location in RAM where FIT image will be stored.
Use label command "kernel" to indicate which <path> the FIT image at.Signed-off-by Wenbin Song <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160907/0d2b6128/attachment.sig>
PATCH v3 1/2 pxe: Fix pxe boot with FIT image
In reply to Wenbin songQuoted 14 lines · Wenbin Song
From: York Sun <[email protected]>
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.
Test cases:
1. Booting with legacy images
2. Booting with legacy images without initrd
3. Booting with FIT image
Test commands:
1. pxe get && pxe boot
2. sysboot
Quoted 2 lines
Signed-off-by York Sun <[email protected]>Signed-off-by Wenbin Song <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160907/250f1001/attachment.sig>