mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-31 03:03:46 +01:00 
			
		
		
		
	OvmfPkg: Add HttpBoot support
This commit introdues a new build option to OvmfPkg: HTTP_BOOT_ENABLE. When HttpBoot is enabled, a new Network boot option will show in the boot manager menu with the device path like this: PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)/IPv4(0.0.0.0)/Uri() It works like the PXE one but fetches the NBP from the given http url instead of the tftp service. A simple testing environment can be set up with the QEMU tap network and dnsmasq + lighttpd. Here is the example of the dnsmasq config: interface=<tap interface> dhcp-range=192.168.111.100,192.168.111.120,12h dhcp-option=60,"HTTPClient" dhcp-boot="http://<tap ip>/<efi file>" It's similar to the PXE server settings except the tftp function is disabled, the option 60 must be "HTTPClient", and the boot uri is a http url. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gary Ching-Pang Lin <glin@suse.com> Reviewed-by: Fu Siyuan <siyuan.fu@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18258 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
		
							parent
							
								
									b199d94188
								
							
						
					
					
						commit
						ab44a6e833
					
				| @ -35,6 +35,7 @@ | |||||||
|   # |   # | ||||||
|   DEFINE SECURE_BOOT_ENABLE      = FALSE |   DEFINE SECURE_BOOT_ENABLE      = FALSE | ||||||
|   DEFINE NETWORK_IP6_ENABLE      = FALSE |   DEFINE NETWORK_IP6_ENABLE      = FALSE | ||||||
|  |   DEFINE HTTP_BOOT_ENABLE        = FALSE | ||||||
| 
 | 
 | ||||||
| [BuildOptions] | [BuildOptions] | ||||||
|   GCC:*_UNIXGCC_*_CC_FLAGS             = -DMDEPKG_NDEBUG |   GCC:*_UNIXGCC_*_CC_FLAGS             = -DMDEPKG_NDEBUG | ||||||
| @ -129,6 +130,10 @@ | |||||||
|   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf |   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf | ||||||
| !endif | !endif | ||||||
| 
 | 
 | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf | ||||||
|  | !endif | ||||||
|  | 
 | ||||||
|   S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf |   S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf | ||||||
|   SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf |   SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf | ||||||
|   OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf |   OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf | ||||||
| @ -550,6 +555,11 @@ | |||||||
|   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf |   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf | ||||||
|   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf |   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf | ||||||
|   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf |   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf | ||||||
|  | !endif | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   NetworkPkg/DnsDxe/DnsDxe.inf | ||||||
|  |   NetworkPkg/HttpDxe/HttpDxe.inf | ||||||
|  |   NetworkPkg/HttpBootDxe/HttpBootDxe.inf | ||||||
| !endif | !endif | ||||||
|   OvmfPkg/VirtioNetDxe/VirtioNet.inf |   OvmfPkg/VirtioNetDxe/VirtioNet.inf | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -323,6 +323,11 @@ FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { | |||||||
|   INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf |   INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf | ||||||
|   INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf |   INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf | ||||||
|   INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf |   INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf | ||||||
|  | !endif | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   INF  NetworkPkg/DnsDxe/DnsDxe.inf | ||||||
|  |   INF  NetworkPkg/HttpDxe/HttpDxe.inf | ||||||
|  |   INF  NetworkPkg/HttpBootDxe/HttpBootDxe.inf | ||||||
| !endif | !endif | ||||||
|   INF  OvmfPkg/VirtioNetDxe/VirtioNet.inf |   INF  OvmfPkg/VirtioNetDxe/VirtioNet.inf | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -35,6 +35,7 @@ | |||||||
|   # |   # | ||||||
|   DEFINE SECURE_BOOT_ENABLE      = FALSE |   DEFINE SECURE_BOOT_ENABLE      = FALSE | ||||||
|   DEFINE NETWORK_IP6_ENABLE      = FALSE |   DEFINE NETWORK_IP6_ENABLE      = FALSE | ||||||
|  |   DEFINE HTTP_BOOT_ENABLE        = FALSE | ||||||
| 
 | 
 | ||||||
| [BuildOptions] | [BuildOptions] | ||||||
|   GCC:*_UNIXGCC_*_CC_FLAGS             = -DMDEPKG_NDEBUG |   GCC:*_UNIXGCC_*_CC_FLAGS             = -DMDEPKG_NDEBUG | ||||||
| @ -134,6 +135,10 @@ | |||||||
|   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf |   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf | ||||||
| !endif | !endif | ||||||
| 
 | 
 | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf | ||||||
|  | !endif | ||||||
|  | 
 | ||||||
|   S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf |   S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf | ||||||
|   SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf |   SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf | ||||||
|   OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf |   OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf | ||||||
| @ -557,6 +562,11 @@ | |||||||
|   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf |   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf | ||||||
|   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf |   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf | ||||||
|   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf |   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf | ||||||
|  | !endif | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   NetworkPkg/DnsDxe/DnsDxe.inf | ||||||
|  |   NetworkPkg/HttpDxe/HttpDxe.inf | ||||||
|  |   NetworkPkg/HttpBootDxe/HttpBootDxe.inf | ||||||
| !endif | !endif | ||||||
|   OvmfPkg/VirtioNetDxe/VirtioNet.inf |   OvmfPkg/VirtioNetDxe/VirtioNet.inf | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -323,6 +323,11 @@ FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { | |||||||
|   INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf |   INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf | ||||||
|   INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf |   INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf | ||||||
|   INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf |   INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf | ||||||
|  | !endif | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   INF  NetworkPkg/DnsDxe/DnsDxe.inf | ||||||
|  |   INF  NetworkPkg/HttpDxe/HttpDxe.inf | ||||||
|  |   INF  NetworkPkg/HttpBootDxe/HttpBootDxe.inf | ||||||
| !endif | !endif | ||||||
|   INF  OvmfPkg/VirtioNetDxe/VirtioNet.inf |   INF  OvmfPkg/VirtioNetDxe/VirtioNet.inf | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -35,6 +35,7 @@ | |||||||
|   # |   # | ||||||
|   DEFINE SECURE_BOOT_ENABLE      = FALSE |   DEFINE SECURE_BOOT_ENABLE      = FALSE | ||||||
|   DEFINE NETWORK_IP6_ENABLE      = FALSE |   DEFINE NETWORK_IP6_ENABLE      = FALSE | ||||||
|  |   DEFINE HTTP_BOOT_ENABLE        = FALSE | ||||||
| 
 | 
 | ||||||
| [BuildOptions] | [BuildOptions] | ||||||
|   GCC:*_UNIXGCC_*_CC_FLAGS             = -DMDEPKG_NDEBUG |   GCC:*_UNIXGCC_*_CC_FLAGS             = -DMDEPKG_NDEBUG | ||||||
| @ -134,6 +135,10 @@ | |||||||
|   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf |   AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf | ||||||
| !endif | !endif | ||||||
| 
 | 
 | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf | ||||||
|  | !endif | ||||||
|  | 
 | ||||||
|   S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf |   S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf | ||||||
|   SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf |   SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf | ||||||
|   OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf |   OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf | ||||||
| @ -555,6 +560,11 @@ | |||||||
|   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf |   MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf | ||||||
|   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf |   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf | ||||||
|   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf |   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf | ||||||
|  | !endif | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   NetworkPkg/DnsDxe/DnsDxe.inf | ||||||
|  |   NetworkPkg/HttpDxe/HttpDxe.inf | ||||||
|  |   NetworkPkg/HttpBootDxe/HttpBootDxe.inf | ||||||
| !endif | !endif | ||||||
|   OvmfPkg/VirtioNetDxe/VirtioNet.inf |   OvmfPkg/VirtioNetDxe/VirtioNet.inf | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -323,6 +323,11 @@ FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { | |||||||
|   INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf |   INF  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf | ||||||
|   INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf |   INF  MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf | ||||||
|   INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf |   INF  MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf | ||||||
|  | !endif | ||||||
|  | !if $(HTTP_BOOT_ENABLE) == TRUE | ||||||
|  |   INF  NetworkPkg/DnsDxe/DnsDxe.inf | ||||||
|  |   INF  NetworkPkg/HttpDxe/HttpDxe.inf | ||||||
|  |   INF  NetworkPkg/HttpBootDxe/HttpBootDxe.inf | ||||||
| !endif | !endif | ||||||
|   INF  OvmfPkg/VirtioNetDxe/VirtioNet.inf |   INF  OvmfPkg/VirtioNetDxe/VirtioNet.inf | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user