diff --git a/0005-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch b/0005-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch
index 847f7b5..1aff322 100644
--- a/0005-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch
+++ b/0005-advertise-OpenSSL-on-TianoCore-splash-screen-boot-lo.patch
@@ -73,11 +73,13 @@ Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase:
   - a new UNI (~description) file for the new driver INF file.
 
 - In the OVMF DSC and FDF files, we select the new driver INF for
-  inclusion if either SECURE_BOOT_ENABLE or TLS_ENABLE is set, as they
-  both make use of OpenSSL (although different subsets of it).
+  inclusion if either SECURE_BOOT_ENABLE, NETWORK_IP6_ENABLE, or
+  TLS_ENABLE is set, as they all make use of OpenSSL (although
+  different subsets of it).
 
 - In the AAVMF DSC and FDF files, we only look at SECURE_BOOT_ENABLE,
-  because the ArmVirtQemu platform does not support TLS_ENABLE yet.
+  or NETWORK_IP6_ENABLE, because the ArmVirtQemu platform does not
+  support TLS_ENABLE yet.
 
 - This patch is best displayed with "git show --find-copies-harder".
 
@@ -96,7 +98,7 @@ Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc   |    4 +
  ArmVirtPkg/ArmVirtQemuKernel.dsc       |    4 +
  MdeModulePkg/Logo/Logo-OpenSSL.bmp.b64 | 2743 ++++++++++++++++++++++++
- MdeModulePkg/Logo/Logo-OpenSSL.idf     |   18 +
+ MdeModulePkg/Logo/Logo-OpenSSL.idf     |   15 +
  MdeModulePkg/Logo/LogoOpenSSLDxe.inf   |   61 +
  MdeModulePkg/Logo/LogoOpenSSLDxe.uni   |   22 +
  OvmfPkg/OvmfPkgIa32.dsc                |    4 +
@@ -105,7 +107,7 @@ Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  OvmfPkg/OvmfPkgIa32X64.fdf             |    4 +
  OvmfPkg/OvmfPkgX64.dsc                 |    4 +
  OvmfPkg/OvmfPkgX64.fdf                 |    4 +
- 13 files changed, 2880 insertions(+)
+ 13 files changed, 2877 insertions(+)
  create mode 100644 MdeModulePkg/Logo/Logo-OpenSSL.bmp.b64
  create mode 100644 MdeModulePkg/Logo/Logo-OpenSSL.idf
  create mode 100644 MdeModulePkg/Logo/LogoOpenSSLDxe.inf
@@ -119,7 +121,7 @@ index d74feb7..7331597 100644
    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
    MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
    MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
-+!if $(SECURE_BOOT_ENABLE) == TRUE
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE)
 +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
    MdeModulePkg/Logo/LogoDxe.inf
@@ -135,7 +137,7 @@ index 89f95b2..8941b7f 100644
    #
    # TianoCore logo (splash screen)
    #
-+!if $(SECURE_BOOT_ENABLE) == TRUE
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE)
 +  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
    INF MdeModulePkg/Logo/LogoDxe.inf
@@ -151,7 +153,7 @@ index 1e823ae..1981aae 100644
    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
    MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
    MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
-+!if $(SECURE_BOOT_ENABLE) == TRUE
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE)
 +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
    MdeModulePkg/Logo/LogoDxe.inf
@@ -2913,13 +2915,10 @@ new file mode 100644
 index 0000000..15de807
 --- /dev/null
 +++ b/MdeModulePkg/Logo/Logo-OpenSSL.idf
-@@ -0,0 +1,18 @@
+@@ -0,0 +1,15 @@
 +// /** @file
 +// Platform Logo image definition file.
 +//
-+// Console Platfrom DXE Driver that specifies whether device can be used as console
-+// input/output device or error output device and update global variables accordingly.
-+//
 +// Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
 +//
 +// This program and the accompanying materials
@@ -3035,7 +3034,7 @@ index 054839f..889735a 100644
        NULL|IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.inf
  !endif
    }
-+!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
 +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
    MdeModulePkg/Logo/LogoDxe.inf
@@ -3051,7 +3050,7 @@ index 0427ded..f552bc9 100644
  INF  RuleOverride = BINARY EdkShellBinPkg/FullShell/FullShell.inf
  !endif
  
-+!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
 +INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
  INF MdeModulePkg/Logo/LogoDxe.inf
@@ -3067,7 +3066,7 @@ index d033fcf..af2cdf1 100644
        NULL|IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.inf
  !endif
    }
-+!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
 +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
    MdeModulePkg/Logo/LogoDxe.inf
@@ -3083,7 +3082,7 @@ index 6df47f4..ee77ae1 100644
  INF  RuleOverride = BINARY USE = X64 EdkShellBinPkg/FullShell/FullShell.inf
  !endif
  
-+!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
 +INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
  INF MdeModulePkg/Logo/LogoDxe.inf
@@ -3099,7 +3098,7 @@ index de335a1..3572e42 100644
        NULL|IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.inf
  !endif
    }
-+!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
 +  MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
    MdeModulePkg/Logo/LogoDxe.inf
@@ -3115,7 +3114,7 @@ index 2e2a174..505d25d 100644
  INF  RuleOverride = BINARY EdkShellBinPkg/FullShell/FullShell.inf
  !endif
  
-+!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
 +INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 +!else
  INF MdeModulePkg/Logo/LogoDxe.inf
diff --git a/0012-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch b/0012-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch
index 870c65a..6ac2215 100644
--- a/0012-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch
+++ b/0012-OvmfPkg-allow-exclusion-of-the-shell-from-the-firmwa.patch
@@ -72,7 +72,7 @@ index f552bc9..73007dd 100644
  !endif
 +!endif
  
- !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
+ !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
 index ee77ae1..116b3c6 100644
@@ -91,7 +91,7 @@ index ee77ae1..116b3c6 100644
  !endif
 +!endif
  
- !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
+ !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
 index 505d25d..84d5845 100644
@@ -110,7 +110,7 @@ index 505d25d..84d5845 100644
  !endif
 +!endif
  
- !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
+ !if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE) || ($(TLS_ENABLE) == TRUE)
  INF MdeModulePkg/Logo/LogoOpenSSLDxe.inf
 -- 
 2.17.0
diff --git a/0053-ArmVirtPkg-unify-HttpLib-resolutions-in-ArmVirt.dsc..patch b/0053-ArmVirtPkg-unify-HttpLib-resolutions-in-ArmVirt.dsc..patch
new file mode 100644
index 0000000..24d6c6d
--- /dev/null
+++ b/0053-ArmVirtPkg-unify-HttpLib-resolutions-in-ArmVirt.dsc..patch
@@ -0,0 +1,67 @@
+From 77b702bfa4947caaa6b4b04730820d91bdf07b03 Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Fri, 13 Jul 2018 01:41:11 +0200
+Subject: [PATCH 1/2] ArmVirtPkg: unify HttpLib resolutions in
+ "ArmVirt.dsc.inc"
+
+We already resolve a number of networking-related library classes in
+ArmVirt.dsc.inc; follow suit with HttpLib.
+
+Cc: Julien Grall <julien.grall@linaro.org>
+Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1007
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+---
+ ArmVirtPkg/ArmVirt.dsc.inc       | 3 +++
+ ArmVirtPkg/ArmVirtQemu.dsc       | 4 ----
+ ArmVirtPkg/ArmVirtQemuKernel.dsc | 4 ----
+ 3 files changed, 3 insertions(+), 8 deletions(-)
+
+diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
+index 7464ac70ed..76c400a5de 100644
+--- a/ArmVirtPkg/ArmVirt.dsc.inc
++++ b/ArmVirtPkg/ArmVirt.dsc.inc
+@@ -80,6 +80,9 @@ [LibraryClasses.common]
+   DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
+   UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
+   IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
++!if $(HTTP_BOOT_ENABLE) == TRUE
++  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
++!endif
+ 
+   #
+   # It is not possible to prevent the ARM compiler from inserting calls to intrinsic functions.
+diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
+index 744d127a10..742df36285 100644
+--- a/ArmVirtPkg/ArmVirtQemu.dsc
++++ b/ArmVirtPkg/ArmVirtQemu.dsc
+@@ -64,10 +64,6 @@ [LibraryClasses.common]
+   PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
+   PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
+ 
+-!if $(HTTP_BOOT_ENABLE) == TRUE
+-  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
+-!endif
+-
+ [LibraryClasses.common.PEIM]
+   ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
+ 
+diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
+index e59f53b728..4ae61ec635 100644
+--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
++++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
+@@ -64,10 +64,6 @@ [LibraryClasses.common]
+   PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
+   PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
+ 
+-!if $(HTTP_BOOT_ENABLE) == TRUE
+-  HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
+-!endif
+-
+ [LibraryClasses.common.UEFI_DRIVER]
+   UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
+ 
+-- 
+2.17.1
+
diff --git a/0054-ArmVirtPkg-ArmVirtQemu-enable-the-IPv6-stack.patch b/0054-ArmVirtPkg-ArmVirtQemu-enable-the-IPv6-stack.patch
new file mode 100644
index 0000000..23d532b
--- /dev/null
+++ b/0054-ArmVirtPkg-ArmVirtQemu-enable-the-IPv6-stack.patch
@@ -0,0 +1,188 @@
+From ae08ea246fe9b4a4e05b7ee6cdbd5b0fa38f3f69 Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Fri, 13 Jul 2018 01:41:12 +0200
+Subject: [PATCH 2/2] ArmVirtPkg/ArmVirtQemu: enable the IPv6 stack
+
+Add the IPv6 stack to ArmVirtQemu with a cumulative port of the following
+OvmfPkg commits:
+
+* 36c6413f76e5 "OvmfPkg: enable the IPv6 support", 2014-12-19
+
+* 96302b80d90e "OvmfPkg: Enable Network2 Shell Commands for IPv6",
+               2016-03-08
+
+* 6d0f8941bdc2 "OvmfPkg: always resolve OpenSslLib, IntrinsicLib and
+               BaseCryptLib", 2017-01-17
+
+* 32e22f20c985 "OvmfPkg: correct the IScsiDxe module included for the IPv6
+               stack", 2017-01-17
+
+The IPv6-enabled IScsiDxe driver depends on BaseCryptLib, and the
+"CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf" instance depends on
+IntrinsicLib and OpensslLib. This is why commit 6d0f8941bdc2 is relevant.
+
+However, unlike in OvmfPkg, in ArmVirtPkg we'll precisely track the
+firmware features that require these library classes. (The OvmfPkg
+discussion was quite complex, and the OvmfPkg solution was a compromise:
+<http://mid.mail-archive.com/1484569332-13440-1-git-send-email-jiaxin.wu@intel.com>.)
+
+The ArmVirtXen platform is not extended with the relevant drivers because
+currently it doesn't include any networking support.
+
+Cc: Julien Grall <julien.grall@linaro.org>
+Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1007
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+---
+ ArmVirtPkg/ArmVirt.dsc.inc           | 18 +++++++++++++++---
+ ArmVirtPkg/ArmVirtQemu.dsc           | 13 ++++++++++++-
+ ArmVirtPkg/ArmVirtQemuKernel.dsc     | 13 ++++++++++++-
+ ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 12 +++++++++++-
+ 4 files changed, 50 insertions(+), 6 deletions(-)
+
+diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
+index 76c400a5de..8bb54c5e65 100644
+--- a/ArmVirtPkg/ArmVirt.dsc.inc
++++ b/ArmVirtPkg/ArmVirt.dsc.inc
+@@ -80,6 +80,9 @@ [LibraryClasses.common]
+   DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
+   UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
+   IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
++!if $(NETWORK_IP6_ENABLE) == TRUE
++  TcpIoLib|MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
++!endif
+ !if $(HTTP_BOOT_ENABLE) == TRUE
+   HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
+ !endif
+@@ -144,14 +147,20 @@ [LibraryClasses.common]
+   XenIoMmioLib|OvmfPkg/Library/XenIoMmioLib/XenIoMmioLib.inf
+ 
+   #
+-  # Secure Boot dependencies
++  # CryptoPkg libraries needed by multiple firmware features
+   #
+-!if $(SECURE_BOOT_ENABLE) == TRUE
++!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE)
+   IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
+   OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
++  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
++!endif
++
++  #
++  # Secure Boot dependencies
++  #
++!if $(SECURE_BOOT_ENABLE) == TRUE
+   TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
+   AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
+-  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
+ 
+   # re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
+   PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
+@@ -406,6 +415,9 @@ [Components.common]
+       NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
+       NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
+       NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
++!if $(NETWORK_IP6_ENABLE) == TRUE
++      NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
++!endif
+       HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
+       PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
+       BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
+diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
+index 742df36285..885c6b14b8 100644
+--- a/ArmVirtPkg/ArmVirtQemu.dsc
++++ b/ArmVirtPkg/ArmVirtQemu.dsc
+@@ -34,6 +34,7 @@ [Defines]
+   # -D FLAG=VALUE
+   #
+   DEFINE SECURE_BOOT_ENABLE      = FALSE
++  DEFINE NETWORK_IP6_ENABLE      = FALSE
+   DEFINE HTTP_BOOT_ENABLE        = FALSE
+ 
+ !include ArmVirtPkg/ArmVirt.dsc.inc
+@@ -344,10 +345,20 @@ [Components.common]
+   MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
+   MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
+   MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
+-  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
+   MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
++!if $(NETWORK_IP6_ENABLE) == TRUE
++  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
++  NetworkPkg/TcpDxe/TcpDxe.inf
++  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
++  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
++  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
++  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
++  NetworkPkg/IScsiDxe/IScsiDxe.inf
++!else
++  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
+   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
+   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
++!endif
+ !if $(HTTP_BOOT_ENABLE) == TRUE
+   NetworkPkg/DnsDxe/DnsDxe.inf
+   NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
+diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
+index 4ae61ec635..434d6861a5 100644
+--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
++++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
+@@ -34,6 +34,7 @@ [Defines]
+   # -D FLAG=VALUE
+   #
+   DEFINE SECURE_BOOT_ENABLE      = FALSE
++  DEFINE NETWORK_IP6_ENABLE      = FALSE
+   DEFINE HTTP_BOOT_ENABLE        = FALSE
+ 
+ !include ArmVirtPkg/ArmVirt.dsc.inc
+@@ -333,10 +334,20 @@ [Components.common]
+   MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
+   MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
+   MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
+-  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
+   MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
++!if $(NETWORK_IP6_ENABLE) == TRUE
++  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
++  NetworkPkg/TcpDxe/TcpDxe.inf
++  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
++  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
++  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
++  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
++  NetworkPkg/IScsiDxe/IScsiDxe.inf
++!else
++  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
+   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
+   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
++!endif
+ !if $(HTTP_BOOT_ENABLE) == TRUE
+   NetworkPkg/DnsDxe/DnsDxe.inf
+   NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
+diff --git a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
+index 63a202c788..a6390bd4b8 100644
+--- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
++++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
+@@ -125,10 +125,20 @@ [FV.FvMain]
+   INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
+   INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
+   INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
+-  INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
+   INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
++!if $(NETWORK_IP6_ENABLE) == TRUE
++  INF NetworkPkg/Ip6Dxe/Ip6Dxe.inf
++  INF NetworkPkg/TcpDxe/TcpDxe.inf
++  INF NetworkPkg/Udp6Dxe/Udp6Dxe.inf
++  INF NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
++  INF NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
++  INF NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
++  INF NetworkPkg/IScsiDxe/IScsiDxe.inf
++!else
++  INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
+   INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
+   INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
++!endif
+ !if $(HTTP_BOOT_ENABLE) == TRUE
+   INF NetworkPkg/DnsDxe/DnsDxe.inf
+   INF NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
+-- 
+2.17.1
+
diff --git a/edk2.spec b/edk2.spec
index 7733db7..505adfe 100644
--- a/edk2.spec
+++ b/edk2.spec
@@ -35,7 +35,7 @@
 
 Name:           edk2
 Version:        %{edk2_date}git%{edk2_githash}
-Release:        3%{dist}
+Release:        4%{dist}
 Summary:        EFI Development Kit II
 
 Group:          Applications/Emulators
@@ -72,6 +72,8 @@ Patch0016: 0016-ArmVirtPkg-set-early-hello-message-RH-only.patch
 Patch0050: 0050-OvmfPkg-PlatformBootManagerLib-connect-consoles-unco.patch
 Patch0051: 0051-ArmVirtPkg-PlatformBootManagerLib-connect-Virtio-RNG.patch
 Patch0052: 0052-OvmfPkg-PlatformBootManagerLib-connect-Virtio-RNG-de.patch
+Patch0053: 0053-ArmVirtPkg-unify-HttpLib-resolutions-in-ArmVirt.dsc..patch
+Patch0054: 0054-ArmVirtPkg-ArmVirtQemu-enable-the-IPv6-stack.patch
 
 %if 0%{?cross:1}
 # Tweak the tools_def to support cross-compiling.
@@ -166,6 +168,8 @@ variable files to enforce Secure Boot.
 %if 0%{?build_ovmf_x64:1}
 %package ovmf
 Summary:        Open Virtual Machine Firmware
+# OVMF includes the Secure Boot and IPv6 features; it has a builtin OpenSSL
+# library.
 License:        BSD and OpenSSL
 Provides:       OVMF = %{version}-%{release}
 Obsoletes:      OVMF < %{version}-%{release}
@@ -178,6 +182,8 @@ Open Virtual Machine Firmware (x64)
 %if 0%{?build_ovmf_ia32:1}
 %package ovmf-ia32
 Summary:        Open Virtual Machine Firmware
+# OVMF includes the Secure Boot and IPv6 features; it has a builtin OpenSSL
+# library.
 License:        BSD and OpenSSL
 BuildArch:      noarch
 %description ovmf-ia32
@@ -191,6 +197,8 @@ Summary:        AARCH64 Virtual Machine Firmware
 Provides:       AAVMF = %{version}-%{release}
 Obsoletes:      AAVMF < %{version}-%{release}
 BuildArch:      noarch
+# No Secure Boot for AAVMF yet, but we include OpenSSL for the IPv6 stack.
+License:        BSD and OpenSSL
 %description aarch64
 EFI Development Kit II
 AARCH64 UEFI Firmware
@@ -220,7 +228,6 @@ cp -a -- %{SOURCE2} .
 
 # add openssl
 (cd .. && tar -xvf %{SOURCE1})
-cp CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl
 
 # Extract QOSB
 tar -xvf %{SOURCE3}
@@ -234,7 +241,7 @@ base64 --decode < MdeModulePkg/Logo/Logo-OpenSSL.bmp.b64 > MdeModulePkg/Logo/Log
 source ./edksetup.sh
 
 # compiler
-CC_FLAGS="-t GCC49"
+CC_FLAGS="-t GCC5"
 
 # parallel builds
 JOBS="%{?_smp_mflags}"
@@ -244,8 +251,8 @@ if test "$JOBS" != ""; then
 fi
 
 # common features
-CC_FLAGS="${CC_FLAGS} -b DEBUG"
-CC_FLAGS="${CC_FLAGS} --cmd-len=65536"
+CC_FLAGS="$CC_FLAGS --cmd-len=65536 -t %{TOOLCHAIN} -b DEBUG --hash"
+CC_FLAGS="$CC_FLAGS -D NETWORK_IP6_ENABLE"
 
 # ovmf features
 OVMF_FLAGS="${CC_FLAGS}"
@@ -270,10 +277,10 @@ sed -i -e 's/-Werror//' Conf/tools_def.txt
 
 
 %if 0%{?cross:1}
-export GCC49_IA32_PREFIX="x86_64-linux-gnu-"
-export GCC49_X64_PREFIX="x86_64-linux-gnu-"
-export GCC49_AARCH64_PREFIX="aarch64-linux-gnu-"
-export GCC49_ARM_PREFIX="arm-linux-gnu-"
+export GCC5_IA32_PREFIX="x86_64-linux-gnu-"
+export GCC5_X64_PREFIX="x86_64-linux-gnu-"
+export GCC5_AARCH64_PREFIX="aarch64-linux-gnu-"
+export GCC5_ARM_PREFIX="arm-linux-gnu-"
 %endif
 
 # build ovmf (x64)
@@ -360,6 +367,7 @@ python3 qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator \
 %endif
 
 %install
+cp CryptoPkg/Library/OpensslLib/openssl/LICENSE LICENSE.openssl
 mkdir -p %{buildroot}%{_bindir} \
          %{buildroot}%{_datadir}/%{name}/Conf \
          %{buildroot}%{_datadir}/%{name}/Scripts
@@ -413,6 +421,7 @@ install qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator %{buildroot}%{_
 
 %files tools
 %license License.txt
+%license LICENSE.openssl
 %{_bindir}/BootSectImage
 %{_bindir}/Brotli
 %{_bindir}/DevicePath
@@ -510,6 +519,9 @@ install qemu-ovmf-secureboot-%{qosb_version}/ovmf-vars-generator %{buildroot}%{_
 
 
 %changelog
+* Wed Jul 18 2018 Paolo Bonzini <pbonzini@redhat.com> - 20180529gitee3198e672e2-4
+- Enable IPv6
+
 * Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20180529gitee3198e672e2-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild