public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* 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

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