audk/NetworkPkg
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
..
Application NetworkPkg: Refine the code of shell app under networkPkg. 2016-03-11 11:55:06 +08:00
Dhcp6Dxe NetworkPkg: Check received packet size before use it. 2016-04-01 13:30:23 +08:00
DnsDxe NetworkPkg: Check received packet size before use it. 2016-04-01 13:30:23 +08:00
HttpBootDxe 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
HttpDxe NetworkPkg: Fix incorrect buffer free in HttpDxe 2016-04-28 16:28:04 +08:00
HttpUtilitiesDxe NetworkPkg:HttpDxe:Consume DxeHttpLib API changes 2016-04-27 10:43:18 +08:00
IScsiDxe NetworkPkg: Fix GCC code build error of iSCSI driver. 2016-04-22 16:58:06 +08:00
Include/Guid NetworkPkg: Add URI configuration form to HTTP boot driver. 2016-03-07 09:12:14 +08:00
Ip6Dxe NetworkPkg: Fix issue in Ip6Dxe SetData 2016-04-14 14:55:09 +08:00
IpSecDxe NetworkPkg: IpSecDxe: remove set but unused variables 2016-03-25 10:52:31 +01:00
Mtftp6Dxe NetworkPkg:Fix Network memory leak when calling GetModeData interface 2016-01-28 02:32:43 +00:00
TcpDxe NetworkPkg: Check received packet size before use it. 2016-04-01 13:30:23 +08:00
Udp6Dxe NetworkPkg: Check received packet size before use it. 2016-04-01 13:30:23 +08:00
UefiPxeBcDxe NetworkPkg: Do not use hard coded TTL/ToS in PXE driver. 2016-05-05 09:08:24 +08:00
Contributions.txt */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
License.txt Update copyright format 2012-04-24 06:49:39 +00:00
NetworkPkg.dec NetworkPkg: Add URI configuration form to HTTP boot driver. 2016-03-07 09:12:14 +08:00
NetworkPkg.dsc NetworkPkg: Use UefiBootManagerLib API to create load option. 2016-05-05 08:45:35 +08:00
NetworkPkg.uni NetworkPkg: Update NetworkPkg.uni to UTF-8 file format 2015-12-23 07:55:27 +00:00
NetworkPkgExtra.uni NetworkPkg: Convert all .uni files to utf-8 2015-12-15 04:56:57 +00:00