Skip to contentSkip to conversation

pxe: Fix pxe boot with FIT image

PATCH New Wenbin song 2 participants 4 messages Sep 1, 2016 – Sep 7, 2016

lore
Share & tools
lore
#0 lore raw

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
index 9434a18..0a07f14 100644
@@ -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
#1 lore raw

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
index cc182c9..db11658 100644
@@ -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
#2 lore raw

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.

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>
#3 lore raw

PATCH v3 1/2 pxe: Fix pxe boot with FIT image

In reply to Wenbin song
Quoted 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

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>