audk/NetworkPkg/HttpBootDxe
Sunny Wang 44a7d08b5a NetworkPkg/HttpBootDxe: Fix for the issue that the HTTP boot option can't be booted more than once
This issue can be reproduced by the following steps:
1. Boot to HTTP boot option and the boot file is a ISO file like Ubuntu PE image.
2. Exit from boot option (GRUB) and then back to boot manager menu.
3. Boot to the same HTTP boot option again or a HTTP boot option pointing to the same HTTP ISO file. It will fail to boot.
Root cause:
When booting a HTTP boot option, the HTTP boot driver will save the Boot File's information in its private data as cache data for skipping the Boot file discovery from next time boot. However, the cache data doesn't include ImageType data, which would cause HTTP boot driver using the invalid ImageType (ImageTypeMax) and then fail to boot the cached boot file. In other words, for the second time boot, the HttpBootLoadFile() doesn't update ImageType (it returns a valid ImageType), which causes that the HttpBootDxeLoadFile() skips to Register a RAM Disk for downloaded HTTP ISO file and then BDS code can't find the RAM disk to boot.
Solution:
Save ImageType to private data for next time HTTP boot.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Sunny Wang <sunnywang@hpe.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
2016-05-06 09:00:57 +08:00
..
HttpBootClient.c NetworkPkg: Add RAM disk boot support to HTTP Boot driver. 2016-04-11 09:49:05 +08:00
HttpBootClient.h NetworkPkg: Add RAM disk boot support to HTTP Boot driver. 2016-04-11 09:49:05 +08:00
HttpBootComponentName.c NetworkPkg:Enable Http Boot over Ipv6 stack 2015-11-09 03:30:42 +00:00
HttpBootComponentName.h NetworkPkg: Convert the UNIX to DOS end of line format 2015-08-27 01:07:31 +00:00
HttpBootConfig.c NetworkPkg: Use UefiBootManagerLib API to create load option. 2016-05-05 08:45:35 +08:00
HttpBootConfig.h NetworkPkg: Fix the driver model issue in HTTP Boot driver. 2016-03-16 14:43:17 +08:00
HttpBootConfigNVDataStruc.h NetworkPkg: Allow user to create a HTTP corporate boot option in setup page. 2016-04-27 10:19:12 +08:00
HttpBootConfigStrings.uni NetworkPkg: Convert UNI file to UTF8 format. 2016-03-10 09:48:20 +08:00
HttpBootConfigVfr.vfr NetworkPkg: Fix HII related problem in HTTP boot driver. 2016-03-24 10:09:47 +08:00
HttpBootDhcp4.c NetworkPkg: Add URI configuration form to HTTP boot driver. 2016-03-07 09:12:14 +08:00
HttpBootDhcp4.h NetworkPkg: Add URI configuration form to HTTP boot driver. 2016-03-07 09:12:14 +08:00
HttpBootDhcp6.c NetworkPkg:Fix bug when parsing the dhcp6 option 16 2016-03-25 11:33:02 +08:00
HttpBootDhcp6.h NetworkPkg:Enable Http Boot over Ipv6 stack 2015-11-09 03:30:42 +00:00
HttpBootDxe.c NetworkPkg: Fix the driver model issue in HTTP Boot driver. 2016-03-16 14:43:17 +08:00
HttpBootDxe.h NetworkPkg/HttpBootDxe: Fix for the issue that the HTTP boot option can't be booted more than once 2016-05-06 09:00:57 +08:00
HttpBootDxe.inf NetworkPkg: Use UefiBootManagerLib API to create load option. 2016-05-05 08:45:35 +08:00
HttpBootDxe.uni NetworkPkg: Convert all .uni files to utf-8 2015-12-15 04:56:57 +00:00
HttpBootDxeExtra.uni NetworkPkg: Convert all .uni files to utf-8 2015-12-15 04:56:57 +00:00
HttpBootImpl.c NetworkPkg/HttpBootDxe: Fix for the issue that the HTTP boot option can't be booted more than once 2016-05-06 09:00:57 +08:00
HttpBootImpl.h NetworkPkg:Enable Http Boot over Ipv6 stack 2015-11-09 03:30:42 +00:00
HttpBootSupport.c NetworkPkg: Add RAM disk boot support to HTTP Boot driver. 2016-04-11 09:49:05 +08:00
HttpBootSupport.h NetworkPkg: Add RAM disk boot support to HTTP Boot driver. 2016-04-11 09:49:05 +08:00