mirror of https://github.com/acidanthera/audk.git
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…
Reference in New Issue