* HTTP Boot failed to download NBP file if it is .iso type @ 2017-06-09 15:34 Karunakar P 2017-06-09 17:48 ` Santhapur Naveen 0 siblings, 1 reply; 7+ messages in thread From: Karunakar P @ 2017-06-09 15:34 UTC (permalink / raw) To: edk2-devel@lists.01.org Hi All, We have facing an issue with HTTP boot. [Issue] HTTP Boot failed to download NBP file if it is an .iso type [Reproduction Steps] 1. Configure HTTP Server in Ubuntu environment. 2. Place any iso image as NBP file. 3. Perform UEFI HTTPv4 boot. [Result] DHCP process was success, But Failed to download NBP file. [Observations] 1. As per UEFI spec "23.7.1 Boot from URL" (UEFI 2.6, page 1222). Here is what the section says about binary image returned by HTTP server: "...the binary image [..] is a UEFI-formatted executable[...], or it could be mounted as a RAM disk which contains a UEFI-compliant file system (see Section 12.3)." We're interested in exploring second scenario, when downloaded image is a UEFI-compliant file system. Section "23.7.3.1 Device Path" on page 1226 provides examples of image URL: http://192.168.1.100/boot.iso The specification also says that "the HTTP Boot driver will register RAM disk with the downloaded NBP, by appending a RamDisk device node to the device path above, like...". HttpBootDxe is doing this.But NBP file itself failing to download in the case of iso image. 2. HTTP boot fails in the following function HttpBootGetBootFile() -> EFI_STATUS HttpBootGetBootFile ( IN HTTP_BOOT_PRIVATE_DATA *Private, IN BOOLEAN HeaderOnly, IN OUT UINTN *BufferSize, OUT UINT8 *Buffer, OUT HTTP_BOOT_IMAGE_TYPE *ImageType ) { . . . Status = HttpIoRecvResponse ( &Private->HttpIo, TRUE, ResponseData ); // Here the Status value is Success and ResponseData->Status = 00000023 if (EFI_ERROR (Status) || EFI_ERROR (ResponseData->Status)) { if (EFI_ERROR (ResponseData->Status)) { StatusCode = HttpIo->RspToken.Message->Data.Response->StatusCode; HttpBootPrintErrorMessage (StatusCode); Status = ResponseData->Status; // Here Status = 00000023 } goto ERROR_5; // goto ERROR_5 } . . . } Note: We have HTTP server configured in Ubuntu Environment. Could you please look into it. Thanks, karunakar ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: HTTP Boot failed to download NBP file if it is .iso type 2017-06-09 15:34 HTTP Boot failed to download NBP file if it is .iso type Karunakar P @ 2017-06-09 17:48 ` Santhapur Naveen 2017-06-13 2:46 ` Fu, Siyuan 0 siblings, 1 reply; 7+ messages in thread From: Santhapur Naveen @ 2017-06-09 17:48 UTC (permalink / raw) To: Karunakar P, edk2-devel@lists.01.org Even if we are able to download an ISO file successfully, how will EFI_RAM_DISK_PROTOCOL comes to know what is the efi that needs to be used? -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Karunakar P Sent: Friday, June 09, 2017 9:04 PM To: edk2-devel@lists.01.org Subject: [edk2] HTTP Boot failed to download NBP file if it is .iso type Hi All, We have facing an issue with HTTP boot. [Issue] HTTP Boot failed to download NBP file if it is an .iso type [Reproduction Steps] 1. Configure HTTP Server in Ubuntu environment. 2. Place any iso image as NBP file. 3. Perform UEFI HTTPv4 boot. [Result] DHCP process was success, But Failed to download NBP file. [Observations] 1. As per UEFI spec "23.7.1 Boot from URL" (UEFI 2.6, page 1222). Here is what the section says about binary image returned by HTTP server: "...the binary image [..] is a UEFI-formatted executable[...], or it could be mounted as a RAM disk which contains a UEFI-compliant file system (see Section 12.3)." We're interested in exploring second scenario, when downloaded image is a UEFI-compliant file system. Section "23.7.3.1 Device Path" on page 1226 provides examples of image URL: http://192.168.1.100/boot.iso The specification also says that "the HTTP Boot driver will register RAM disk with the downloaded NBP, by appending a RamDisk device node to the device path above, like...". HttpBootDxe is doing this.But NBP file itself failing to download in the case of iso image. 2. HTTP boot fails in the following function HttpBootGetBootFile() -> EFI_STATUS HttpBootGetBootFile ( IN HTTP_BOOT_PRIVATE_DATA *Private, IN BOOLEAN HeaderOnly, IN OUT UINTN *BufferSize, OUT UINT8 *Buffer, OUT HTTP_BOOT_IMAGE_TYPE *ImageType ) { . . . Status = HttpIoRecvResponse ( &Private->HttpIo, TRUE, ResponseData ); // Here the Status value is Success and ResponseData->Status = 00000023 if (EFI_ERROR (Status) || EFI_ERROR (ResponseData->Status)) { if (EFI_ERROR (ResponseData->Status)) { StatusCode = HttpIo->RspToken.Message->Data.Response->StatusCode; HttpBootPrintErrorMessage (StatusCode); Status = ResponseData->Status; // Here Status = 00000023 } goto ERROR_5; // goto ERROR_5 } . . . } Note: We have HTTP server configured in Ubuntu Environment. Could you please look into it. Thanks, karunakar _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel This e-mail is intended for the use of the addressee only and may contain privileged, confidential, or proprietary information that is exempt from disclosure under law. If you have received this message in error, please inform us promptly by reply e-mail, then delete the e-mail and destroy any printed copy. Thank you. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: HTTP Boot failed to download NBP file if it is .iso type 2017-06-09 17:48 ` Santhapur Naveen @ 2017-06-13 2:46 ` Fu, Siyuan 2017-06-13 9:31 ` Santhapur Naveen 0 siblings, 1 reply; 7+ messages in thread From: Fu, Siyuan @ 2017-06-13 2:46 UTC (permalink / raw) To: Santhapur Naveen, Karunakar P, edk2-devel@lists.01.org Hi, Karunakar and Naveen Status 00000023 is EFI_HTTP_ERROR, which means the HTTP server replied an HTTP error. The HTTP error code is placed in HttpIo->RspToken.Message->Data.Response->StatusCode, and will be displayed in HttpBootPrintErrorMessage() function. If a downloaded NBP is a RAM disk image, the BDS will try to find a boot file inside it according UEFI 2.7 section 3.5.1 "Boot via the Simple File Protocol". Best Regards, Siyuan -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Santhapur Naveen Sent: Saturday, June 10, 2017 1:49 AM To: Karunakar P; edk2-devel@lists.01.org Subject: Re: [edk2] HTTP Boot failed to download NBP file if it is .iso type Even if we are able to download an ISO file successfully, how will EFI_RAM_DISK_PROTOCOL comes to know what is the efi that needs to be used? -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Karunakar P Sent: Friday, June 09, 2017 9:04 PM To: edk2-devel@lists.01.org Subject: [edk2] HTTP Boot failed to download NBP file if it is .iso type Hi All, We have facing an issue with HTTP boot. [Issue] HTTP Boot failed to download NBP file if it is an .iso type [Reproduction Steps] 1. Configure HTTP Server in Ubuntu environment. 2. Place any iso image as NBP file. 3. Perform UEFI HTTPv4 boot. [Result] DHCP process was success, But Failed to download NBP file. [Observations] 1. As per UEFI spec "23.7.1 Boot from URL" (UEFI 2.6, page 1222). Here is what the section says about binary image returned by HTTP server: "...the binary image [..] is a UEFI-formatted executable[...], or it could be mounted as a RAM disk which contains a UEFI-compliant file system (see Section 12.3)." We're interested in exploring second scenario, when downloaded image is a UEFI-compliant file system. Section "23.7.3.1 Device Path" on page 1226 provides examples of image URL: http://192.168.1.100/boot.iso The specification also says that "the HTTP Boot driver will register RAM disk with the downloaded NBP, by appending a RamDisk device node to the device path above, like...". HttpBootDxe is doing this.But NBP file itself failing to download in the case of iso image. 2. HTTP boot fails in the following function HttpBootGetBootFile() -> EFI_STATUS HttpBootGetBootFile ( IN HTTP_BOOT_PRIVATE_DATA *Private, IN BOOLEAN HeaderOnly, IN OUT UINTN *BufferSize, OUT UINT8 *Buffer, OUT HTTP_BOOT_IMAGE_TYPE *ImageType ) { . . . Status = HttpIoRecvResponse ( &Private->HttpIo, TRUE, ResponseData ); // Here the Status value is Success and ResponseData->Status = 00000023 if (EFI_ERROR (Status) || EFI_ERROR (ResponseData->Status)) { if (EFI_ERROR (ResponseData->Status)) { StatusCode = HttpIo->RspToken.Message->Data.Response->StatusCode; HttpBootPrintErrorMessage (StatusCode); Status = ResponseData->Status; // Here Status = 00000023 } goto ERROR_5; // goto ERROR_5 } . . . } Note: We have HTTP server configured in Ubuntu Environment. Could you please look into it. Thanks, karunakar _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel This e-mail is intended for the use of the addressee only and may contain privileged, confidential, or proprietary information that is exempt from disclosure under law. If you have received this message in error, please inform us promptly by reply e-mail, then delete the e-mail and destroy any printed copy. Thank you. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: HTTP Boot failed to download NBP file if it is .iso type 2017-06-13 2:46 ` Fu, Siyuan @ 2017-06-13 9:31 ` Santhapur Naveen 2017-06-14 6:04 ` Fu, Siyuan 2017-06-14 7:09 ` Gary Lin 0 siblings, 2 replies; 7+ messages in thread From: Santhapur Naveen @ 2017-06-13 9:31 UTC (permalink / raw) To: Fu, Siyuan, Karunakar P, edk2-devel@lists.01.org Hi Siyuan, Thank you for your reply. And regarding the OS installation, we are able to download SUSE iso (>3 GB) from the HTTP server. But the install didn't happen. May I ask you what could be possible reason? Is there anything else I've had missed, please let me know. Regards, Naveen -----Original Message----- From: Fu, Siyuan [mailto:siyuan.fu@intel.com] Sent: Tuesday, June 13, 2017 8:17 AM To: Santhapur Naveen; Karunakar P; edk2-devel@lists.01.org Subject: RE: HTTP Boot failed to download NBP file if it is .iso type Hi, Karunakar and Naveen Status 00000023 is EFI_HTTP_ERROR, which means the HTTP server replied an HTTP error. The HTTP error code is placed in HttpIo->RspToken.Message->Data.Response->StatusCode, and will be displayed in HttpBootPrintErrorMessage() function. If a downloaded NBP is a RAM disk image, the BDS will try to find a boot file inside it according UEFI 2.7 section 3.5.1 "Boot via the Simple File Protocol". Best Regards, Siyuan -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Santhapur Naveen Sent: Saturday, June 10, 2017 1:49 AM To: Karunakar P; edk2-devel@lists.01.org Subject: Re: [edk2] HTTP Boot failed to download NBP file if it is .iso type Even if we are able to download an ISO file successfully, how will EFI_RAM_DISK_PROTOCOL comes to know what is the efi that needs to be used? -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Karunakar P Sent: Friday, June 09, 2017 9:04 PM To: edk2-devel@lists.01.org Subject: [edk2] HTTP Boot failed to download NBP file if it is .iso type Hi All, We have facing an issue with HTTP boot. [Issue] HTTP Boot failed to download NBP file if it is an .iso type [Reproduction Steps] 1. Configure HTTP Server in Ubuntu environment. 2. Place any iso image as NBP file. 3. Perform UEFI HTTPv4 boot. [Result] DHCP process was success, But Failed to download NBP file. [Observations] 1. As per UEFI spec "23.7.1 Boot from URL" (UEFI 2.6, page 1222). Here is what the section says about binary image returned by HTTP server: "...the binary image [..] is a UEFI-formatted executable[...], or it could be mounted as a RAM disk which contains a UEFI-compliant file system (see Section 12.3)." We're interested in exploring second scenario, when downloaded image is a UEFI-compliant file system. Section "23.7.3.1 Device Path" on page 1226 provides examples of image URL: http://192.168.1.100/boot.iso The specification also says that "the HTTP Boot driver will register RAM disk with the downloaded NBP, by appending a RamDisk device node to the device path above, like...". HttpBootDxe is doing this.But NBP file itself failing to download in the case of iso image. 2. HTTP boot fails in the following function HttpBootGetBootFile() -> EFI_STATUS HttpBootGetBootFile ( IN HTTP_BOOT_PRIVATE_DATA *Private, IN BOOLEAN HeaderOnly, IN OUT UINTN *BufferSize, OUT UINT8 *Buffer, OUT HTTP_BOOT_IMAGE_TYPE *ImageType ) { . . . Status = HttpIoRecvResponse ( &Private->HttpIo, TRUE, ResponseData ); // Here the Status value is Success and ResponseData->Status = 00000023 if (EFI_ERROR (Status) || EFI_ERROR (ResponseData->Status)) { if (EFI_ERROR (ResponseData->Status)) { StatusCode = HttpIo->RspToken.Message->Data.Response->StatusCode; HttpBootPrintErrorMessage (StatusCode); Status = ResponseData->Status; // Here Status = 00000023 } goto ERROR_5; // goto ERROR_5 } . . . } Note: We have HTTP server configured in Ubuntu Environment. Could you please look into it. Thanks, karunakar _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel This e-mail is intended for the use of the addressee only and may contain privileged, confidential, or proprietary information that is exempt from disclosure under law. If you have received this message in error, please inform us promptly by reply e-mail, then delete the e-mail and destroy any printed copy. Thank you. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: HTTP Boot failed to download NBP file if it is .iso type 2017-06-13 9:31 ` Santhapur Naveen @ 2017-06-14 6:04 ` Fu, Siyuan 2017-06-21 11:46 ` Karunakar P 2017-06-14 7:09 ` Gary Lin 1 sibling, 1 reply; 7+ messages in thread From: Fu, Siyuan @ 2017-06-14 6:04 UTC (permalink / raw) To: Santhapur Naveen, Karunakar P, edk2-devel@lists.01.org Hi, Naveen First let's kick out the HTTP and check whether your SUSE iso image could support RAM disk boot: 1. Go to "RAM Disk Configuration" form in your setup browser. 2. Change the disk memory type to "Reserved" 3. Choose "Create from file" and select the SUSE iso image from a local harddisk or USB disk. 4. After the RAM disk is created, go back to the boot manager, select the new created RAM disk device to boot from it. If your SUSE iso image could boot in above way, please check whether your BDS has been updated to support HTTP RAM disk boot. Best Regards, Siyuan > -----Original Message----- > From: Santhapur Naveen [mailto:naveens@amiindia.co.in] > Sent: Tuesday, June 13, 2017 5:32 PM > To: Fu, Siyuan <siyuan.fu@intel.com>; Karunakar P > <karunakarp@amiindia.co.in>; edk2-devel@lists.01.org > Subject: RE: HTTP Boot failed to download NBP file if it is .iso type > > Hi Siyuan, > > Thank you for your reply. > And regarding the OS installation, we are able to download SUSE iso (>3 GB) > from the HTTP server. But the install didn't happen. > May I ask you what could be possible reason? Is there anything else I've > had missed, please let me know. > > Regards, > Naveen > > -----Original Message----- > From: Fu, Siyuan [mailto:siyuan.fu@intel.com] > Sent: Tuesday, June 13, 2017 8:17 AM > To: Santhapur Naveen; Karunakar P; edk2-devel@lists.01.org > Subject: RE: HTTP Boot failed to download NBP file if it is .iso type > > Hi, Karunakar and Naveen > > Status 00000023 is EFI_HTTP_ERROR, which means the HTTP server replied an > HTTP error. The HTTP error code is placed in HttpIo->RspToken.Message- > >Data.Response->StatusCode, and will be displayed in > HttpBootPrintErrorMessage() function. > > If a downloaded NBP is a RAM disk image, the BDS will try to find a boot > file inside it according UEFI 2.7 section 3.5.1 "Boot via the Simple File > Protocol". > > Best Regards, > Siyuan > > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Santhapur Naveen > Sent: Saturday, June 10, 2017 1:49 AM > To: Karunakar P; edk2-devel@lists.01.org > Subject: Re: [edk2] HTTP Boot failed to download NBP file if it is .iso > type > > Even if we are able to download an ISO file successfully, how will > EFI_RAM_DISK_PROTOCOL comes to know what is the efi that needs to be used? > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Karunakar P > Sent: Friday, June 09, 2017 9:04 PM > To: edk2-devel@lists.01.org > Subject: [edk2] HTTP Boot failed to download NBP file if it is .iso type > > Hi All, > > We have facing an issue with HTTP boot. > > [Issue] > HTTP Boot failed to download NBP file if it is an .iso type > > [Reproduction Steps] > > 1. Configure HTTP Server in Ubuntu environment. > > 2. Place any iso image as NBP file. > > 3. Perform UEFI HTTPv4 boot. > > [Result] > DHCP process was success, But Failed to download NBP file. > > [Observations] > > 1. As per UEFI spec "23.7.1 Boot from URL" (UEFI 2.6, page 1222). > > Here is what the section says about binary image returned by HTTP server: > > "...the binary image [..] is a UEFI-formatted executable[...], or it could > be mounted as a RAM disk which contains a UEFI-compliant file system (see > Section 12.3)." > > We're interested in exploring second scenario, when downloaded image is a > UEFI-compliant file system. > > Section "23.7.3.1 Device Path" on page 1226 provides examples of image URL: > http://192.168.1.100/boot.iso > > The specification also says that "the HTTP Boot driver will register RAM > disk with the downloaded NBP, by appending a RamDisk device node to the > device path above, like...". > > > > HttpBootDxe is doing this.But NBP file itself failing to download in the > case of iso image. > > > > 2. HTTP boot fails in the following function > > > > HttpBootGetBootFile() -> > > > > EFI_STATUS > > HttpBootGetBootFile ( > > IN HTTP_BOOT_PRIVATE_DATA *Private, > > IN BOOLEAN HeaderOnly, > > IN OUT UINTN *BufferSize, > > OUT UINT8 *Buffer, > > OUT HTTP_BOOT_IMAGE_TYPE *ImageType > > ) > > { > > . > > . > > . > > Status = HttpIoRecvResponse ( > > &Private->HttpIo, > > TRUE, > > ResponseData > > ); > > // Here the Status value is Success and ResponseData->Status = 00000023 > > > > if (EFI_ERROR (Status) || EFI_ERROR (ResponseData->Status)) { > > if (EFI_ERROR (ResponseData->Status)) { > > StatusCode = HttpIo->RspToken.Message->Data.Response->StatusCode; > > HttpBootPrintErrorMessage (StatusCode); > > Status = ResponseData->Status; > > // Here Status = 00000023 > > > > } > > goto ERROR_5; // goto ERROR_5 > > } > > . > > . > > . > > } > > > > Note: > We have HTTP server configured in Ubuntu Environment. > > Could you please look into it. > > > Thanks, > karunakar > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > This e-mail is intended for the use of the addressee only and may contain > privileged, confidential, or proprietary information that is exempt from > disclosure under law. If you have received this message in error, please > inform us promptly by reply e-mail, then delete the e-mail and destroy any > printed copy. Thank you. > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: HTTP Boot failed to download NBP file if it is .iso type 2017-06-14 6:04 ` Fu, Siyuan @ 2017-06-21 11:46 ` Karunakar P 0 siblings, 0 replies; 7+ messages in thread From: Karunakar P @ 2017-06-21 11:46 UTC (permalink / raw) To: Fu, Siyuan, edk2-devel@lists.01.org Hi All, Verified that BDS has been updated to support HTTP RAM disk boot. And able to download SUSE iso (>3 GB) from the HTTP server. But the install stops in middle. I've checked SUSE iso image could support RAM disk boot or NOT with below steps 1. Go to "RAM Disk Configuration" form setup browser. 2. Change the disk memory type to "Reserved" 3. Choose "Create from file" and select the SUSE iso image from a local USB disk. 4. After the RAM disk is created, go back to the boot manager, select the new created RAM disk device to boot from it. When I tries to boot from it, installation stops in middle. Note: Tried with SLE-12-SP2-Server-DVD-x86_64-GM-DVD1.iso If there anything else I've missed please let me know. Could you please help which ISO images supports this RAM Disk boot? Have you verified HTTP boot with any iso image? Thanks, karunakar -----Original Message----- From: Fu, Siyuan [mailto:siyuan.fu@intel.com] Sent: Wednesday, June 14, 2017 11:34 AM To: Santhapur Naveen; Karunakar P; edk2-devel@lists.01.org Subject: RE: HTTP Boot failed to download NBP file if it is .iso type Hi, Naveen First let's kick out the HTTP and check whether your SUSE iso image could support RAM disk boot: 1. Go to "RAM Disk Configuration" form in your setup browser. 2. Change the disk memory type to "Reserved" 3. Choose "Create from file" and select the SUSE iso image from a local harddisk or USB disk. 4. After the RAM disk is created, go back to the boot manager, select the new created RAM disk device to boot from it. If your SUSE iso image could boot in above way, please check whether your BDS has been updated to support HTTP RAM disk boot. Best Regards, Siyuan > -----Original Message----- > From: Santhapur Naveen [mailto:naveens@amiindia.co.in] > Sent: Tuesday, June 13, 2017 5:32 PM > To: Fu, Siyuan <siyuan.fu@intel.com>; Karunakar P > <karunakarp@amiindia.co.in>; edk2-devel@lists.01.org > Subject: RE: HTTP Boot failed to download NBP file if it is .iso type > > Hi Siyuan, > > Thank you for your reply. > And regarding the OS installation, we are able to download SUSE iso > (>3 GB) from the HTTP server. But the install didn't happen. > May I ask you what could be possible reason? Is there anything else > I've had missed, please let me know. > > Regards, > Naveen > > -----Original Message----- > From: Fu, Siyuan [mailto:siyuan.fu@intel.com] > Sent: Tuesday, June 13, 2017 8:17 AM > To: Santhapur Naveen; Karunakar P; edk2-devel@lists.01.org > Subject: RE: HTTP Boot failed to download NBP file if it is .iso type > > Hi, Karunakar and Naveen > > Status 00000023 is EFI_HTTP_ERROR, which means the HTTP server replied > an HTTP error. The HTTP error code is placed in > HttpIo->RspToken.Message- > >Data.Response->StatusCode, and will be displayed in > HttpBootPrintErrorMessage() function. > > If a downloaded NBP is a RAM disk image, the BDS will try to find a > boot file inside it according UEFI 2.7 section 3.5.1 "Boot via the > Simple File Protocol". > > Best Regards, > Siyuan > > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Santhapur Naveen > Sent: Saturday, June 10, 2017 1:49 AM > To: Karunakar P; edk2-devel@lists.01.org > Subject: Re: [edk2] HTTP Boot failed to download NBP file if it is > .iso type > > Even if we are able to download an ISO file successfully, how will > EFI_RAM_DISK_PROTOCOL comes to know what is the efi that needs to be used? > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Karunakar P > Sent: Friday, June 09, 2017 9:04 PM > To: edk2-devel@lists.01.org > Subject: [edk2] HTTP Boot failed to download NBP file if it is .iso > type > > Hi All, > > We have facing an issue with HTTP boot. > > [Issue] > HTTP Boot failed to download NBP file if it is an .iso type > > [Reproduction Steps] > > 1. Configure HTTP Server in Ubuntu environment. > > 2. Place any iso image as NBP file. > > 3. Perform UEFI HTTPv4 boot. > > [Result] > DHCP process was success, But Failed to download NBP file. > > [Observations] > > 1. As per UEFI spec "23.7.1 Boot from URL" (UEFI 2.6, page 1222). > > Here is what the section says about binary image returned by HTTP server: > > "...the binary image [..] is a UEFI-formatted executable[...], or it > could be mounted as a RAM disk which contains a UEFI-compliant file > system (see Section 12.3)." > > We're interested in exploring second scenario, when downloaded image > is a UEFI-compliant file system. > > Section "23.7.3.1 Device Path" on page 1226 provides examples of image URL: > http://192.168.1.100/boot.iso > > The specification also says that "the HTTP Boot driver will register > RAM disk with the downloaded NBP, by appending a RamDisk device node > to the device path above, like...". > > > > HttpBootDxe is doing this.But NBP file itself failing to download in > the case of iso image. > > > > 2. HTTP boot fails in the following function > > > > HttpBootGetBootFile() -> > > > > EFI_STATUS > > HttpBootGetBootFile ( > > IN HTTP_BOOT_PRIVATE_DATA *Private, > > IN BOOLEAN HeaderOnly, > > IN OUT UINTN *BufferSize, > > OUT UINT8 *Buffer, > > OUT HTTP_BOOT_IMAGE_TYPE *ImageType > > ) > > { > > . > > . > > . > > Status = HttpIoRecvResponse ( > > &Private->HttpIo, > > TRUE, > > ResponseData > > ); > > // Here the Status value is Success and ResponseData->Status = > 00000023 > > > > if (EFI_ERROR (Status) || EFI_ERROR (ResponseData->Status)) { > > if (EFI_ERROR (ResponseData->Status)) { > > StatusCode = > HttpIo->RspToken.Message->Data.Response->StatusCode; > > HttpBootPrintErrorMessage (StatusCode); > > Status = ResponseData->Status; > > // Here Status = 00000023 > > > > } > > goto ERROR_5; // goto ERROR_5 > > } > > . > > . > > . > > } > > > > Note: > We have HTTP server configured in Ubuntu Environment. > > Could you please look into it. > > > Thanks, > karunakar > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > This e-mail is intended for the use of the addressee only and may > contain privileged, confidential, or proprietary information that is > exempt from disclosure under law. If you have received this message in > error, please inform us promptly by reply e-mail, then delete the > e-mail and destroy any printed copy. Thank you. > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: HTTP Boot failed to download NBP file if it is .iso type 2017-06-13 9:31 ` Santhapur Naveen 2017-06-14 6:04 ` Fu, Siyuan @ 2017-06-14 7:09 ` Gary Lin 1 sibling, 0 replies; 7+ messages in thread From: Gary Lin @ 2017-06-14 7:09 UTC (permalink / raw) To: Santhapur Naveen; +Cc: Fu, Siyuan, Karunakar P, edk2-devel@lists.01.org On Tue, Jun 13, 2017 at 09:31:49AM +0000, Santhapur Naveen wrote: > Hi Siyuan, > > Thank you for your reply. > And regarding the OS installation, we are able to download SUSE iso (>3 GB) from the HTTP server. But the install didn't happen. > May I ask you what could be possible reason? Is there anything else I've had missed, please let me know. Which version of SLE are you using? SUSE Linux Enterprise supports EFI_RAM_DISK_PROTOCOL since 12 SP2, so any image older than 12 SP2 would not work. Per my test, as long as the firmware loads the iso into memory, the iso works as an additional CD-ROM, and the firmware can boot into the iso directly. Cheers, Gary Lin > > Regards, > Naveen > > -----Original Message----- > From: Fu, Siyuan [mailto:siyuan.fu@intel.com] > Sent: Tuesday, June 13, 2017 8:17 AM > To: Santhapur Naveen; Karunakar P; edk2-devel@lists.01.org > Subject: RE: HTTP Boot failed to download NBP file if it is .iso type > > Hi, Karunakar and Naveen > > Status 00000023 is EFI_HTTP_ERROR, which means the HTTP server replied an HTTP error. The HTTP error code is placed in HttpIo->RspToken.Message->Data.Response->StatusCode, and will be displayed in HttpBootPrintErrorMessage() function. > > If a downloaded NBP is a RAM disk image, the BDS will try to find a boot file inside it according UEFI 2.7 section 3.5.1 "Boot via the Simple File Protocol". > > Best Regards, > Siyuan > > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Santhapur Naveen > Sent: Saturday, June 10, 2017 1:49 AM > To: Karunakar P; edk2-devel@lists.01.org > Subject: Re: [edk2] HTTP Boot failed to download NBP file if it is .iso type > > Even if we are able to download an ISO file successfully, how will EFI_RAM_DISK_PROTOCOL comes to know what is the efi that needs to be used? > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Karunakar P > Sent: Friday, June 09, 2017 9:04 PM > To: edk2-devel@lists.01.org > Subject: [edk2] HTTP Boot failed to download NBP file if it is .iso type > > Hi All, > > We have facing an issue with HTTP boot. > > [Issue] > HTTP Boot failed to download NBP file if it is an .iso type > > [Reproduction Steps] > > 1. Configure HTTP Server in Ubuntu environment. > > 2. Place any iso image as NBP file. > > 3. Perform UEFI HTTPv4 boot. > > [Result] > DHCP process was success, But Failed to download NBP file. > > [Observations] > > 1. As per UEFI spec "23.7.1 Boot from URL" (UEFI 2.6, page 1222). > > Here is what the section says about binary image returned by HTTP server: > > "...the binary image [..] is a UEFI-formatted executable[...], or it could be mounted as a RAM disk which contains a UEFI-compliant file system (see Section 12.3)." > > We're interested in exploring second scenario, when downloaded image is a UEFI-compliant file system. > > Section "23.7.3.1 Device Path" on page 1226 provides examples of image URL: http://192.168.1.100/boot.iso > > The specification also says that "the HTTP Boot driver will register RAM disk with the downloaded NBP, by appending a RamDisk device node to the device path above, like...". > > > > HttpBootDxe is doing this.But NBP file itself failing to download in the case of iso image. > > > > 2. HTTP boot fails in the following function > > > > HttpBootGetBootFile() -> > > > > EFI_STATUS > > HttpBootGetBootFile ( > > IN HTTP_BOOT_PRIVATE_DATA *Private, > > IN BOOLEAN HeaderOnly, > > IN OUT UINTN *BufferSize, > > OUT UINT8 *Buffer, > > OUT HTTP_BOOT_IMAGE_TYPE *ImageType > > ) > > { > > . > > . > > . > > Status = HttpIoRecvResponse ( > > &Private->HttpIo, > > TRUE, > > ResponseData > > ); > > // Here the Status value is Success and ResponseData->Status = 00000023 > > > > if (EFI_ERROR (Status) || EFI_ERROR (ResponseData->Status)) { > > if (EFI_ERROR (ResponseData->Status)) { > > StatusCode = HttpIo->RspToken.Message->Data.Response->StatusCode; > > HttpBootPrintErrorMessage (StatusCode); > > Status = ResponseData->Status; > > // Here Status = 00000023 > > > > } > > goto ERROR_5; // goto ERROR_5 > > } > > . > > . > > . > > } > > > > Note: > We have HTTP server configured in Ubuntu Environment. > > Could you please look into it. > > > Thanks, > karunakar > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > This e-mail is intended for the use of the addressee only and may contain privileged, confidential, or proprietary information that is exempt from disclosure under law. If you have received this message in error, please inform us promptly by reply e-mail, then delete the e-mail and destroy any printed copy. Thank you. > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-06-21 11:45 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-06-09 15:34 HTTP Boot failed to download NBP file if it is .iso type Karunakar P 2017-06-09 17:48 ` Santhapur Naveen 2017-06-13 2:46 ` Fu, Siyuan 2017-06-13 9:31 ` Santhapur Naveen 2017-06-14 6:04 ` Fu, Siyuan 2017-06-21 11:46 ` Karunakar P 2017-06-14 7:09 ` Gary Lin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox