Blame SOURCES/edk2-ArmVirtPkg-ArmVirtQemu-enable-the-IPv6-stack.patch

cc9195
From eff60320e87dcda19a50de4f1ac05af4a5e1b133 Mon Sep 17 00:00:00 2001
cc9195
From: Laszlo Ersek <lersek@redhat.com>
cc9195
Date: Wed, 18 Jul 2018 00:18:19 +0200
cc9195
Subject: [PATCH 3/6] ArmVirtPkg/ArmVirtQemu: enable the IPv6 stack
cc9195
cc9195
Message-id: <20180717221822.13110-3-lersek@redhat.com>
cc9195
Patchwork-id: 81375
cc9195
O-Subject:  [RHEL8/virt212 edk2 PATCH 2/5] ArmVirtPkg/ArmVirtQemu: enable the
cc9195
	IPv6 stack
cc9195
Bugzilla: 1536627
cc9195
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
cc9195
Acked-by: Wei Huang <wei@redhat.com>
cc9195
cc9195
Add the IPv6 stack to ArmVirtQemu with a cumulative port of the following
cc9195
OvmfPkg commits:
cc9195
cc9195
* 36c6413f76e5 "OvmfPkg: enable the IPv6 support", 2014-12-19
cc9195
cc9195
* 96302b80d90e "OvmfPkg: Enable Network2 Shell Commands for IPv6",
cc9195
               2016-03-08
cc9195
cc9195
* 6d0f8941bdc2 "OvmfPkg: always resolve OpenSslLib, IntrinsicLib and
cc9195
               BaseCryptLib", 2017-01-17
cc9195
cc9195
* 32e22f20c985 "OvmfPkg: correct the IScsiDxe module included for the IPv6
cc9195
               stack", 2017-01-17
cc9195
cc9195
The IPv6-enabled IScsiDxe driver depends on BaseCryptLib, and the
cc9195
"CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf" instance depends on
cc9195
IntrinsicLib and OpensslLib. This is why commit 6d0f8941bdc2 is relevant.
cc9195
cc9195
However, unlike in OvmfPkg, in ArmVirtPkg we'll precisely track the
cc9195
firmware features that require these library classes. (The OvmfPkg
cc9195
discussion was quite complex, and the OvmfPkg solution was a compromise:
cc9195
<http://mid.mail-archive.com/1484569332-13440-1-git-send-email-jiaxin.wu@intel.com>.)
cc9195
cc9195
The ArmVirtXen platform is not extended with the relevant drivers because
cc9195
currently it doesn't include any networking support.
cc9195
cc9195
Cc: Julien Grall <julien.grall@linaro.org>
cc9195
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1007
cc9195
Contributed-under: TianoCore Contribution Agreement 1.1
cc9195
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
cc9195
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
cc9195
(cherry picked from commit ae08ea246fe9b4a4e05b7ee6cdbd5b0fa38f3f69)
cc9195
---
cc9195
 ArmVirtPkg/ArmVirt.dsc.inc           | 18 +++++++++++++++---
cc9195
 ArmVirtPkg/ArmVirtQemu.dsc           | 13 ++++++++++++-
cc9195
 ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 12 +++++++++++-
cc9195
 ArmVirtPkg/ArmVirtQemuKernel.dsc     | 13 ++++++++++++-
cc9195
 4 files changed, 50 insertions(+), 6 deletions(-)
cc9195
cc9195
diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
cc9195
index 2bb8860..f031e81 100644
cc9195
--- a/ArmVirtPkg/ArmVirt.dsc.inc
cc9195
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
cc9195
@@ -80,6 +80,9 @@
cc9195
   DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
cc9195
   UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
cc9195
   IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
cc9195
+!if $(NETWORK_IP6_ENABLE) == TRUE
cc9195
+  TcpIoLib|MdeModulePkg/Library/DxeTcpIoLib/DxeTcpIoLib.inf
cc9195
+!endif
cc9195
 !if $(HTTP_BOOT_ENABLE) == TRUE
cc9195
   HttpLib|MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
cc9195
 !endif
cc9195
@@ -141,14 +144,20 @@
cc9195
   XenIoMmioLib|OvmfPkg/Library/XenIoMmioLib/XenIoMmioLib.inf
cc9195
 
cc9195
   #
cc9195
-  # Secure Boot dependencies
cc9195
+  # CryptoPkg libraries needed by multiple firmware features
cc9195
   #
cc9195
-!if $(SECURE_BOOT_ENABLE) == TRUE
cc9195
+!if ($(SECURE_BOOT_ENABLE) == TRUE) || ($(NETWORK_IP6_ENABLE) == TRUE)
cc9195
   IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
cc9195
   OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
cc9195
+  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
cc9195
+!endif
cc9195
+
cc9195
+  #
cc9195
+  # Secure Boot dependencies
cc9195
+  #
cc9195
+!if $(SECURE_BOOT_ENABLE) == TRUE
cc9195
   TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
cc9195
   AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
cc9195
-  BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
cc9195
 
cc9195
   # re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
cc9195
   PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
cc9195
@@ -403,6 +412,9 @@
cc9195
       NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
cc9195
       NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
cc9195
       NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
cc9195
+!if $(NETWORK_IP6_ENABLE) == TRUE
cc9195
+      NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
cc9195
+!endif
cc9195
       HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
cc9195
       PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
cc9195
       BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
cc9195
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
cc9195
index bb9d7c8..41ff17d 100644
cc9195
--- a/ArmVirtPkg/ArmVirtQemu.dsc
cc9195
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
cc9195
@@ -34,6 +34,7 @@
cc9195
   # -D FLAG=VALUE
cc9195
   #
cc9195
   DEFINE SECURE_BOOT_ENABLE      = FALSE
cc9195
+  DEFINE NETWORK_IP6_ENABLE      = FALSE
cc9195
   DEFINE HTTP_BOOT_ENABLE        = FALSE
cc9195
 
cc9195
 !include ArmVirtPkg/ArmVirt.dsc.inc
cc9195
@@ -353,10 +354,20 @@
cc9195
   MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
cc9195
   MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
cc9195
   MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
cc9195
-  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
cc9195
   MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
cc9195
+!if $(NETWORK_IP6_ENABLE) == TRUE
cc9195
+  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
cc9195
+  NetworkPkg/TcpDxe/TcpDxe.inf
cc9195
+  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
cc9195
+  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
cc9195
+  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
cc9195
+  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
cc9195
+  NetworkPkg/IScsiDxe/IScsiDxe.inf
cc9195
+!else
cc9195
+  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
cc9195
   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
cc9195
   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
cc9195
+!endif
cc9195
 !if $(HTTP_BOOT_ENABLE) == TRUE
cc9195
   NetworkPkg/DnsDxe/DnsDxe.inf
cc9195
   NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
cc9195
diff --git a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
cc9195
index 8941b7f..82d9cbd 100644
cc9195
--- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
cc9195
+++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
cc9195
@@ -125,10 +125,20 @@ READ_LOCK_STATUS   = TRUE
cc9195
   INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
cc9195
   INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
cc9195
   INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
cc9195
-  INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
cc9195
   INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
cc9195
+!if $(NETWORK_IP6_ENABLE) == TRUE
cc9195
+  INF NetworkPkg/Ip6Dxe/Ip6Dxe.inf
cc9195
+  INF NetworkPkg/TcpDxe/TcpDxe.inf
cc9195
+  INF NetworkPkg/Udp6Dxe/Udp6Dxe.inf
cc9195
+  INF NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
cc9195
+  INF NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
cc9195
+  INF NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
cc9195
+  INF NetworkPkg/IScsiDxe/IScsiDxe.inf
cc9195
+!else
cc9195
+  INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
cc9195
   INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
cc9195
   INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
cc9195
+!endif
cc9195
 !if $(HTTP_BOOT_ENABLE) == TRUE
cc9195
   INF NetworkPkg/DnsDxe/DnsDxe.inf
cc9195
   INF NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
cc9195
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
cc9195
index 9027805..83fc12f 100644
cc9195
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
cc9195
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
cc9195
@@ -34,6 +34,7 @@
cc9195
   # -D FLAG=VALUE
cc9195
   #
cc9195
   DEFINE SECURE_BOOT_ENABLE      = FALSE
cc9195
+  DEFINE NETWORK_IP6_ENABLE      = FALSE
cc9195
   DEFINE HTTP_BOOT_ENABLE        = FALSE
cc9195
 
cc9195
 !include ArmVirtPkg/ArmVirt.dsc.inc
cc9195
@@ -336,10 +337,20 @@
cc9195
   MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
cc9195
   MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
cc9195
   MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
cc9195
-  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
cc9195
   MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
cc9195
+!if $(NETWORK_IP6_ENABLE) == TRUE
cc9195
+  NetworkPkg/Ip6Dxe/Ip6Dxe.inf
cc9195
+  NetworkPkg/TcpDxe/TcpDxe.inf
cc9195
+  NetworkPkg/Udp6Dxe/Udp6Dxe.inf
cc9195
+  NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
cc9195
+  NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
cc9195
+  NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
cc9195
+  NetworkPkg/IScsiDxe/IScsiDxe.inf
cc9195
+!else
cc9195
+  MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
cc9195
   MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
cc9195
   MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
cc9195
+!endif
cc9195
 !if $(HTTP_BOOT_ENABLE) == TRUE
cc9195
   NetworkPkg/DnsDxe/DnsDxe.inf
cc9195
   NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
cc9195
-- 
cc9195
1.8.3.1
cc9195