diff options
author | Sunny Wang <sunnywang@hpe.com> | 2016-05-05 10:05:00 +0800 |
---|---|---|
committer | Fu Siyuan <siyuan.fu@intel.com> | 2016-05-06 09:00:57 +0800 |
commit | 44a7d08b5a935347a35507fb5db42659a96b3452 (patch) | |
tree | 9ea9bb019696e72a462ae9f79adbd50cd518c70c /Vlv2TbltDevicePkg/Override/IntelFrameworkModulePkg | |
parent | 9cc0168a70052638ffb40b09369a636d4fa84b36 (diff) | |
download | edk2-platforms-44a7d08b5a935347a35507fb5db42659a96b3452.tar.xz |
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>
Diffstat (limited to 'Vlv2TbltDevicePkg/Override/IntelFrameworkModulePkg')
0 files changed, 0 insertions, 0 deletions