public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs
@ 2019-02-06 12:10 Laszlo Ersek
  2019-02-06 12:10 ` [PATCH 01/14] ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase Laszlo Ersek
                   ` (15 more replies)
  0 siblings, 16 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:10 UTC (permalink / raw)
  To: edk2-devel

Repo:   https://github.com/lersek/edk2.git
Branch: armvirt_pcd_clean

(1) The procedure described below depends on:

    [edk2] [PATCH]
    BaseTools/BuildReport: fix report for platforms/arches without struct PCDs

    http://mid.mail-archive.com/20190205112213.682-1-lersek@redhat.com
    https://lists.01.org/pipermail/edk2-devel/2019-February/036320.html

(2) Background: while working on the fix in (1), I noticed that the PCD
    sections in the build reports of various ArmVirt platforms contained
    "PCDs not used by modules or in conditional directives". I thought
    that we should attempt to clean those up. Subsequently I built the
    following 36 ArmVirt platforms:

> extra_opts=("" "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D SECURE_BOOT_ENABLE -D TTY_TERMINAL")
> for arch in ARM AARCH64; do
>   for platform in Qemu QemuKernel Xen; do
>     for target in NOOPT DEBUG RELEASE; do
>       for extra in 0 1; do
>         GCC5_ARM_PREFIX=arm-linux-gnu- \
>         GCC5_AARCH64_PREFIX=aarch64-linux-gnu- \
>         build \
>           -a $arch \
>           -p ArmVirtPkg/ArmVirt${platform}.dsc \
>           -t GCC5 \
>           -b $target \
>           -n $(getconf _NPROCESSORS_ONLN) \
>           --report-file=$HOME/tmp/report.$arch.$platform.$target.$extra.txt \
>           --report-type=PCD \
>           --cmd-len=65536 \
>           ${extra_opts[$extra]}
>       done
>     done
>   done
> done

    Then I gradually eliminated the redundant PCD settings.

(3) At the bottom of this email (i.e., the series cover letter), I'm
    including a base64-encoded tarball of report files, saved (like
    described in (2)) before and after the series. Diffing the reports
    proves that the series cleans up the PCD settings without any
    changes observable to modules.

(4) The series advances in small steps. The reason is that some of the
    facts exposed could be surprising (I know I was surprised), and we
    could decide that we want to do something else (e.g. file a BZ, and
    fill the gap later). For such cases I wanted to be able to drop
    individual patches at will.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>

Thanks,
Laszlo

Laszlo Ersek (14):
  ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase
  ArmVirtPkg: don't set PcdRelocateVectorTable
  ArmVirtPkg/{ArmVirtQemu,ArmVirtQemuKernel}: don't set
    PcdTrustzoneSupport
  ArmVirtPkg: don't set PcdPostCodePropertyMask
  ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu
    only)
  ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency
  ArmVirtPkg: don't set PcdCoreCount
  ArmVirtPkg: don't set PcdDebugClearMemoryValue
  ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds
  ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase
  ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer
  ArmVirtPkg/ArmVirtXen: don't set PcdShellFile
  ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport
  ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy

 ArmVirtPkg/ArmVirt.dsc.inc                          | 27 ++------------------
 ArmVirtPkg/ArmVirtQemu.dsc                          | 21 ++++++++++++---
 ArmVirtPkg/ArmVirtQemuKernel.dsc                    | 17 ++++++++----
 ArmVirtPkg/ArmVirtXen.dsc                           |  9 -------
 ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf |  2 --
 5 files changed, 31 insertions(+), 45 deletions(-)

begin-base64 600 reports.tar.xz
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
e3RYPIvNaqz/OKcr0pybsucV3Hq5YaWXU3ZAt5qK1VdOD2zJziziwdBZnX53
q/O0XAAU8eL+PFLIWWzNRCXmSkQiE0+htiaajMGlMMOyppFfaGdi5Iv3jOSf
dVe9hs1p3PK5ZFuIvA7IPB1eanB2usB0XOz824aLH8VaIzq+AmRcNPJHPY7j
+cHQuKeAZacVh6wj2m7w9lj6D5PDtXabESvErChQ3uAopxr8khkbEjVR/LjE
3YufJfA4QGTyLlt1FYX8lrz73prlN5e7zh7mCCQNaRell610UvFeb1JlthKU
7HWCnXzHy+sn/dDJjJmuJgKSUT4APiRNaURsrHiUlhFD1A80jEHAc+DgHE/n
kI5yyQ2Bb2a7EQGfqRHWDZTYbEz/ssZdfJlmfZEDjhxoH4xxdsEftzoqMbge
6K+NSIeKOE4K3L9OE8dkBJVFq+9Bpy/RWwkOttqTrva+zlD6BoW0qmfAkyw/
W3w5+ZLxKsz6ffjLnp7naJleLXDx6jUeOG0zLPLVy/dfT0z9TwywkXiPdK9R
hPaqmAONRMk2pKI8HUFJidRO8XHFFOVoZOoMd5pDfz+ZOKppu3c6m+CJon9z
Cote+LdhutZyAEzBPg42eHY6EVMu8HmSomvF87Uz6S293ivekDqrZS8dy8wQ
ROiQmSjiGHDxH2zRaZRQojVZ71bJ1EDv39C/MEsm2bg3zFCIrlpP6T+b0lJ8
eYIj1JP3AcFhO4cg/VI0u1GEokBcPpMjybeijix9dexw9t2vvdWiDYOQh0PC
6jmUNOa6i7NVIfrKaQkynpdXfzfxSCY2yBKE/4o08bFNUoLpP0PTEqWtvnAj
jcqEWW/rIXHvD411067Cf0eaE6G5S2IjvToIiwh/vxBRJFwcTazxM1YP+nVv
18u/+m68eaV7+irkD7MuKcP72cy2RZkDMJ0+at7q2GkjEvty/1r9fj9nD51N
U34SmcL7Ny0RFOoGk527PubZvJaBbW0dZCo6TYzA97qD9eozEb6RhfXLhOJj
QLO3JQhwKLgETzyqkdef0yATqjet+La91ypilF3A13dNUvYPC9nIvJFmD/EB
moUzOzGtXGy2kOhlrBUsd1cc2FmM4r9ZVwe65vIy9j+A+3oq2g+qtQmEdZDB
2jirCm354R6eArQkpt9/jcf9vILV876obT5ubyLwC+P+ONbfuWgivPzZSr+U
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
0KQIAAAACtedUxQXOzADAAAAAARZWg==
====

-- 
2.19.1.3.g30247aa5d201



^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 01/14] ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
@ 2019-02-06 12:10 ` Laszlo Ersek
  2019-02-06 12:10 ` [PATCH 02/14] ArmVirtPkg: don't set PcdRelocateVectorTable Laszlo Ersek
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:10 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x {QemuKernel} x {DEBUG,NOOPT,RELEASE} x {feat-0,feat-1}

(12 builds in total), the PCD is not used in any of those builds. Remove
the setting.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirtQemuKernel.dsc | 1 -
 1 file changed, 1 deletion(-)

diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index 6c2d6488d499..aa0f8eb47052 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -98,7 +98,6 @@ [PcdsFixedAtBuild.common]
   gArmTokenSpaceGuid.PcdVFPEnabled|1
 !endif
 
-  gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000
   gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 02/14] ArmVirtPkg: don't set PcdRelocateVectorTable
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
  2019-02-06 12:10 ` [PATCH 01/14] ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase Laszlo Ersek
@ 2019-02-06 12:10 ` Laszlo Ersek
  2019-02-06 12:10 ` [PATCH 03/14] ArmVirtPkg/{ArmVirtQemu, ArmVirtQemuKernel}: don't set PcdTrustzoneSupport Laszlo Ersek
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:10 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x
  {Qemu,QemuKernel,Xen} x
  {DEBUG,NOOPT,RELEASE} x
  {feat-0,feat-1}

(36 builds in total), the PCD is not used in any of those builds. Remove
the setting.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirt.dsc.inc | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index c47955be940c..778a0aced23e 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -271,9 +271,6 @@ [BuildOptions]
 [PcdsFeatureFlag.common]
   gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE
 
-  # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
-  gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
-
   gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
 
   gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 03/14] ArmVirtPkg/{ArmVirtQemu, ArmVirtQemuKernel}: don't set PcdTrustzoneSupport
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
  2019-02-06 12:10 ` [PATCH 01/14] ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase Laszlo Ersek
  2019-02-06 12:10 ` [PATCH 02/14] ArmVirtPkg: don't set PcdRelocateVectorTable Laszlo Ersek
@ 2019-02-06 12:10 ` Laszlo Ersek
  2019-02-06 12:10 ` [PATCH 04/14] ArmVirtPkg: don't set PcdPostCodePropertyMask Laszlo Ersek
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:10 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x
  {Qemu,QemuKernel} x
  {DEBUG,NOOPT,RELEASE} x
  {feat-0,feat-1}

(24 builds in total), the PCD is not used in any of those builds. Remove
the setting.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirtQemu.dsc       | 3 ---
 ArmVirtPkg/ArmVirtQemuKernel.dsc | 3 ---
 2 files changed, 6 deletions(-)

diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index aec92c191eca..6083d65a61e5 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -100,9 +100,6 @@ [PcdsFixedAtBuild.common]
   # Size of the region used by UEFI in permanent memory (Reserved 64MB)
   gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
 
-  ## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
-  gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE
-
   #
   # ARM PrimeCell
   #
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index aa0f8eb47052..a77b4bd32127 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -105,9 +105,6 @@ [PcdsFixedAtBuild.common]
   # Size of the region used by UEFI in permanent memory (Reserved 64MB)
   gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
 
-  ## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
-  gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE
-
   #
   # ARM PrimeCell
   #
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 04/14] ArmVirtPkg: don't set PcdPostCodePropertyMask
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (2 preceding siblings ...)
  2019-02-06 12:10 ` [PATCH 03/14] ArmVirtPkg/{ArmVirtQemu, ArmVirtQemuKernel}: don't set PcdTrustzoneSupport Laszlo Ersek
@ 2019-02-06 12:10 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 05/14] ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu only) Laszlo Ersek
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:10 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x
  {Qemu,QemuKernel,Xen} x
  {DEBUG,NOOPT,RELEASE} x
  {feat-0,feat-1}

(36 builds in total), the PCD is not used in any of those builds. Remove
the setting.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirt.dsc.inc | 1 -
 1 file changed, 1 deletion(-)

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index 778a0aced23e..0735c438d248 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -287,7 +287,6 @@ [PcdsFixedAtBuild.common]
   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
   gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
   gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
-  gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
 
   # DEBUG_ASSERT_ENABLED       0x01
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 05/14] ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu only)
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (3 preceding siblings ...)
  2019-02-06 12:10 ` [PATCH 04/14] ArmVirtPkg: don't set PcdPostCodePropertyMask Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 06/14] ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency Laszlo Ersek
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x
  {QemuKernel,Xen} x
  {DEBUG,NOOPT,RELEASE} x
  {feat-0,feat-1}

(24 builds in total), the PCD is not used in any of those builds.

Move the setting from "ArmVirt.dsc.inc" to "ArmVirtQemu.dsc", to reflect
reality.

We originally moved the PCD setting in the opposite direction in commit
8aab575c26e9 ("ArmVirtPkg: enable non-executable DXE stack for all
platforms", 2017-03-07), generalizing it. However, as the comment itself
states, and according to all 36 ArmVirt build reports:

  {AARCH64,ARM} x
  {Qemu,QemuKernel,Xen} x
  {DEBUG,NOOPT,RELEASE} x
  {feat-0,feat-1}

the PCD is only consumed by "MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf", and
that module is only included in the ArmVirtQemu platform.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirt.dsc.inc | 5 -----
 ArmVirtPkg/ArmVirtQemu.dsc | 5 +++++
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index 0735c438d248..980cfa839027 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -374,11 +374,6 @@ [PcdsFixedAtBuild.common]
   #
   gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
 
-  #
-  # Enable the non-executable DXE stack. (This gets set up by DxeIpl)
-  #
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
-
 [Components.common]
   #
   # Ramdisk support
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index 6083d65a61e5..f4b945c79ab3 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -139,6 +139,11 @@ [PcdsFixedAtBuild.common]
   #
   gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
 
+  #
+  # Enable the non-executable DXE stack. (This gets set up by DxeIpl)
+  #
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
+
 [PcdsFixedAtBuild.AARCH64]
   # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
   # if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 06/14] ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (4 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 05/14] ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu only) Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 07/14] ArmVirtPkg: don't set PcdCoreCount Laszlo Ersek
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

The PcdCoreCount dependency in the "ArmVirtPrePiUniCoreRelocatable.inf"
file is false; the module doesn't consume the PCD. Clean up the INF.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf | 2 --
 1 file changed, 2 deletions(-)

diff --git a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf
index 5fe6cd8eb481..26ee13c00ba1 100755
--- a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf
+++ b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf
@@ -83,8 +83,6 @@ [FixedPcd]
 
   gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
 
-  gArmPlatformTokenSpaceGuid.PcdCoreCount
-
   gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize
 
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 07/14] ArmVirtPkg: don't set PcdCoreCount
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (5 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 06/14] ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 08/14] ArmVirtPkg: don't set PcdDebugClearMemoryValue Laszlo Ersek
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x
  {Qemu,QemuKernel,Xen} x
  {DEBUG,NOOPT,RELEASE} x
  {feat-0,feat-1}

(36 builds in total), the PCD is not used in any of those builds. Remove
the setting.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirtQemu.dsc       | 1 -
 ArmVirtPkg/ArmVirtQemuKernel.dsc | 1 -
 ArmVirtPkg/ArmVirtXen.dsc        | 2 --
 3 files changed, 4 deletions(-)

diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index f4b945c79ab3..170821e5ace6 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -87,7 +87,6 @@ [PcdsFeatureFlag.common]
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
 
 [PcdsFixedAtBuild.common]
-  gArmPlatformTokenSpaceGuid.PcdCoreCount|1
 !if $(ARCH) == AARCH64
   gArmTokenSpaceGuid.PcdVFPEnabled|1
 !endif
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index a77b4bd32127..d5328ed6ff20 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -93,7 +93,6 @@ [PcdsFeatureFlag.common]
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
 
 [PcdsFixedAtBuild.common]
-  gArmPlatformTokenSpaceGuid.PcdCoreCount|1
 !if $(ARCH) == AARCH64
   gArmTokenSpaceGuid.PcdVFPEnabled|1
 !endif
diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
index e58444e6ae27..a262b9ca37ee 100644
--- a/ArmVirtPkg/ArmVirtXen.dsc
+++ b/ArmVirtPkg/ArmVirtXen.dsc
@@ -74,8 +74,6 @@ [BuildOptions.common.EDKII.SEC, BuildOptions.common.EDKII.BASE]
 
 [PcdsFixedAtBuild.common]
   gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)"
-
-  gArmPlatformTokenSpaceGuid.PcdCoreCount|1
 !if $(ARCH) == AARCH64
   gArmTokenSpaceGuid.PcdVFPEnabled|1
 !endif
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 08/14] ArmVirtPkg: don't set PcdDebugClearMemoryValue
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (6 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 07/14] ArmVirtPkg: don't set PcdCoreCount Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 09/14] ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds Laszlo Ersek
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x {Qemu,QemuKernel,Xen} x {RELEASE} x {feat-0,feat-1}

(12 builds in total), the PCD is not used in any of those builds.

Rather than just restrict the PCD setting to ($(TARGET) != RELEASE),
remove the setting completely. The current value is identical to the 0xAF
default in "MdePkg/MdePkg.dec", which recognizes Andrew Fish, and so it's
unlikely to ever change.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirt.dsc.inc | 1 -
 1 file changed, 1 deletion(-)

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index 980cfa839027..0e4bcf728a4f 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -286,7 +286,6 @@ [PcdsFixedAtBuild.common]
   gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
   gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
-  gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
 
   # DEBUG_ASSERT_ENABLED       0x01
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 09/14] ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (7 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 08/14] ArmVirtPkg: don't set PcdDebugClearMemoryValue Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 10/14] ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase Laszlo Ersek
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x {Qemu,QemuKernel,Xen} x {RELEASE} x {feat-0,feat-1}

(12 builds in total), the PCD is not used in any of those builds. Restrict
the PCD setting to ($(TARGET) != RELEASE).

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirt.dsc.inc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index 0e4bcf728a4f..f4a1c0512678 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -320,7 +320,9 @@ [PcdsFixedAtBuild.common]
   #  DEBUG_VERBOSE   0x00400000  // Detailed debug messages that may
   #                              // significantly impact boot performance
   #  DEBUG_ERROR     0x80000000  // Error
+!if $(TARGET) != RELEASE
   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL)
+!endif
 
   #
   # Optional feature to help prevent EFI memory map fragments
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 10/14] ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (8 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 09/14] ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 11/14] ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer Laszlo Ersek
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x {Xen} x {DEBUG,NOOPT,RELEASE} x {feat-0,feat-1}

(12 builds in total), the PCD is not used in any of those builds. Remove
the setting.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirtXen.dsc | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
index a262b9ca37ee..04850eb7a9dd 100644
--- a/ArmVirtPkg/ArmVirtXen.dsc
+++ b/ArmVirtPkg/ArmVirtXen.dsc
@@ -129,9 +129,6 @@ [PcdsDynamicDefault.common]
   gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
 
-  ## PL031 RealTimeClock
-  gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
-
   gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
 
 ################################################################################
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 11/14] ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (9 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 10/14] ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 12/14] ArmVirtPkg/ArmVirtXen: don't set PcdShellFile Laszlo Ersek
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x {Xen} x {DEBUG,NOOPT,RELEASE} x {feat-0,feat-1}

(12 builds in total), the PCD is not used in any of those builds.

Restrict the setting to the ArmVirtQemu and ArmVirtQemuKernel platforms.
Restrict the TTY_TERMINAL define similarly.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirt.dsc.inc       | 6 ------
 ArmVirtPkg/ArmVirtQemu.dsc       | 3 +++
 ArmVirtPkg/ArmVirtQemuKernel.dsc | 3 +++
 ArmVirtPkg/ArmVirtXen.dsc        | 3 ---
 4 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index f4a1c0512678..59d66102bfb7 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -15,7 +15,6 @@
 
 [Defines]
   DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F
-  DEFINE TTY_TERMINAL            = FALSE
 
 [BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION]
   GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
@@ -357,11 +356,6 @@ [PcdsFixedAtBuild.common]
   gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
 !endif
 
-!if $(TTY_TERMINAL) == TRUE
-  # Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
-  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
-!endif
-
   #
   # Enable strict image permissions for all images. (This applies
   # only to images that were built with >= 4 KB section alignment.)
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index 170821e5ace6..f4aac11ee4ef 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -33,6 +33,7 @@ [Defines]
   # Defines for default states.  These can be changed on the command line.
   # -D FLAG=VALUE
   #
+  DEFINE TTY_TERMINAL            = FALSE
   DEFINE SECURE_BOOT_ENABLE      = FALSE
   DEFINE NETWORK_IP6_ENABLE      = FALSE
   DEFINE HTTP_BOOT_ENABLE        = FALSE
@@ -110,6 +111,8 @@ [PcdsFixedAtBuild.common]
   ## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
 !if $(TTY_TERMINAL) == TRUE
   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
+  # Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
+  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
 !else
   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
 !endif
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index d5328ed6ff20..5fa75b8fd5e3 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -33,6 +33,7 @@ [Defines]
   # Defines for default states.  These can be changed on the command line.
   # -D FLAG=VALUE
   #
+  DEFINE TTY_TERMINAL            = FALSE
   DEFINE SECURE_BOOT_ENABLE      = FALSE
   DEFINE NETWORK_IP6_ENABLE      = FALSE
   DEFINE HTTP_BOOT_ENABLE        = FALSE
@@ -115,6 +116,8 @@ [PcdsFixedAtBuild.common]
   ## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
 !if $(TTY_TERMINAL) == TRUE
   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
+  # Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
+  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
 !else
   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
 !endif
diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
index 04850eb7a9dd..cfa7a5f870a4 100644
--- a/ArmVirtPkg/ArmVirtXen.dsc
+++ b/ArmVirtPkg/ArmVirtXen.dsc
@@ -96,9 +96,6 @@ [PcdsFixedAtBuild.common]
   ## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
   gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
 
-  # Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
-  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
-
   #
   # Make VariableRuntimeDxe work at emulated non-volatile variable mode.
   #
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 12/14] ArmVirtPkg/ArmVirtXen: don't set PcdShellFile
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (10 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 11/14] ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 13/14] ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport Laszlo Ersek
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x {Xen} x {DEBUG,NOOPT,RELEASE} x {feat-0,feat-1}

(12 builds in total), the PCD is not used in any of those builds. Remove
the setting.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirtXen.dsc | 1 -
 1 file changed, 1 deletion(-)

diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
index cfa7a5f870a4..a3688ae2cbb8 100644
--- a/ArmVirtPkg/ArmVirtXen.dsc
+++ b/ArmVirtPkg/ArmVirtXen.dsc
@@ -90,7 +90,6 @@ [PcdsFixedAtBuild.common]
 
   gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
   gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
-  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
 
   ## Default Terminal Type
   ## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 13/14] ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (11 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 12/14] ArmVirtPkg/ArmVirtXen: don't set PcdShellFile Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 12:11 ` [PATCH 14/14] ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy Laszlo Ersek
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x {Xen} x {DEBUG,NOOPT,RELEASE} x {feat-0,feat-1}

(12 builds in total), the PCD is not used in any of those builds. Restrict
the setting to the ArmVirtQemu and ArmVirtQemuKernel platforms.

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirt.dsc.inc       | 2 --
 ArmVirtPkg/ArmVirtQemu.dsc       | 2 ++
 ArmVirtPkg/ArmVirtQemuKernel.dsc | 2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index 59d66102bfb7..f7c51e3c160f 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -272,8 +272,6 @@ [PcdsFeatureFlag.common]
 
   gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
 
-  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
-
 [PcdsFeatureFlag.AARCH64]
   #
   # Activate AcpiSdtProtocol
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index f4aac11ee4ef..83c8af0258b2 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -87,6 +87,8 @@ [PcdsFeatureFlag.common]
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
 
+  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
+
 [PcdsFixedAtBuild.common]
 !if $(ARCH) == AARCH64
   gArmTokenSpaceGuid.PcdVFPEnabled|1
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index 5fa75b8fd5e3..46d8bac3ef4d 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -93,6 +93,8 @@ [PcdsFeatureFlag.common]
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
 
+  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
+
 [PcdsFixedAtBuild.common]
 !if $(ARCH) == AARCH64
   gArmTokenSpaceGuid.PcdVFPEnabled|1
-- 
2.19.1.3.g30247aa5d201




^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 14/14] ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (12 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 13/14] ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport Laszlo Ersek
@ 2019-02-06 12:11 ` Laszlo Ersek
  2019-02-06 15:46 ` [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Ard Biesheuvel
  2019-02-13  6:13 ` Laszlo Ersek
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 12:11 UTC (permalink / raw)
  To: edk2-devel

According to the

  PCDs not used by modules or in conditional directives

sections of all the build reports for

  {AARCH64,ARM} x {Xen} x {DEBUG,NOOPT,RELEASE} x {feat-1}

(6 builds in total), PcdOptionRomImageVerificationPolicy,
PcdFixedMediaImageVerificationPolicy, and
PcdRemovableMediaImageVerificationPolicy are not used in any of those
builds.

Restrict the settings to the ArmVirtQemu and ArmVirtQemuKernel platforms
(preserving the -D SECURE_BOOT_ENABLE restriction in the process).

("feat-1" stands for "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D
SECURE_BOOT_ENABLE -D TTY_TERMINAL", while "feat-0" stands for "".)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ArmVirtPkg/ArmVirt.dsc.inc       | 7 -------
 ArmVirtPkg/ArmVirtQemu.dsc       | 7 +++++++
 ArmVirtPkg/ArmVirtQemuKernel.dsc | 7 +++++++
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index f7c51e3c160f..5d541d35e0c0 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -347,13 +347,6 @@ [PcdsFixedAtBuild.common]
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
 
-!if $(SECURE_BOOT_ENABLE) == TRUE
-  # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
-  gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
-  gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
-  gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
-!endif
-
   #
   # Enable strict image permissions for all images. (This applies
   # only to images that were built with >= 4 KB section alignment.)
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index 83c8af0258b2..8cc31fda7a37 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -148,6 +148,13 @@ [PcdsFixedAtBuild.common]
   #
   gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
 
+!if $(SECURE_BOOT_ENABLE) == TRUE
+  # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
+  gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
+  gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
+  gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
+!endif
+
 [PcdsFixedAtBuild.AARCH64]
   # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
   # if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index 46d8bac3ef4d..c3e0c9bf2549 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -142,6 +142,13 @@ [PcdsFixedAtBuild.common]
   #
   gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
 
+!if $(SECURE_BOOT_ENABLE) == TRUE
+  # override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
+  gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
+  gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
+  gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
+!endif
+
 [PcdsPatchableInModule.common]
   #
   # This will be overridden in the code
-- 
2.19.1.3.g30247aa5d201



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (13 preceding siblings ...)
  2019-02-06 12:11 ` [PATCH 14/14] ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy Laszlo Ersek
@ 2019-02-06 15:46 ` Ard Biesheuvel
  2019-02-06 15:54   ` Laszlo Ersek
  2019-02-13  6:13 ` Laszlo Ersek
  15 siblings, 1 reply; 18+ messages in thread
From: Ard Biesheuvel @ 2019-02-06 15:46 UTC (permalink / raw)
  To: Laszlo Ersek; +Cc: edk2-devel@lists.01.org, Julien Grall

On Wed, 6 Feb 2019 at 12:11, Laszlo Ersek <lersek@redhat.com> wrote:
>
> Repo:   https://github.com/lersek/edk2.git
> Branch: armvirt_pcd_clean
>
> (1) The procedure described below depends on:
>
>     [edk2] [PATCH]
>     BaseTools/BuildReport: fix report for platforms/arches without struct PCDs
>
>     http://mid.mail-archive.com/20190205112213.682-1-lersek@redhat.com
>     https://lists.01.org/pipermail/edk2-devel/2019-February/036320.html
>
> (2) Background: while working on the fix in (1), I noticed that the PCD
>     sections in the build reports of various ArmVirt platforms contained
>     "PCDs not used by modules or in conditional directives". I thought
>     that we should attempt to clean those up. Subsequently I built the
>     following 36 ArmVirt platforms:
>
> > extra_opts=("" "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D SECURE_BOOT_ENABLE -D TTY_TERMINAL")
> > for arch in ARM AARCH64; do
> >   for platform in Qemu QemuKernel Xen; do
> >     for target in NOOPT DEBUG RELEASE; do
> >       for extra in 0 1; do
> >         GCC5_ARM_PREFIX=arm-linux-gnu- \
> >         GCC5_AARCH64_PREFIX=aarch64-linux-gnu- \
> >         build \
> >           -a $arch \
> >           -p ArmVirtPkg/ArmVirt${platform}.dsc \
> >           -t GCC5 \
> >           -b $target \
> >           -n $(getconf _NPROCESSORS_ONLN) \
> >           --report-file=$HOME/tmp/report.$arch.$platform.$target.$extra.txt \
> >           --report-type=PCD \
> >           --cmd-len=65536 \
> >           ${extra_opts[$extra]}
> >       done
> >     done
> >   done
> > done
>
>     Then I gradually eliminated the redundant PCD settings.
>
> (3) At the bottom of this email (i.e., the series cover letter), I'm
>     including a base64-encoded tarball of report files, saved (like
>     described in (2)) before and after the series. Diffing the reports
>     proves that the series cleans up the PCD settings without any
>     changes observable to modules.
>
> (4) The series advances in small steps. The reason is that some of the
>     facts exposed could be surprising (I know I was surprised), and we
>     could decide that we want to do something else (e.g. file a BZ, and
>     fill the gap later). For such cases I wanted to be able to drop
>     individual patches at will.
>
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Julien Grall <julien.grall@linaro.org>
>
> Thanks,
> Laszlo
>
> Laszlo Ersek (14):
>   ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase
>   ArmVirtPkg: don't set PcdRelocateVectorTable
>   ArmVirtPkg/{ArmVirtQemu,ArmVirtQemuKernel}: don't set
>     PcdTrustzoneSupport
>   ArmVirtPkg: don't set PcdPostCodePropertyMask
>   ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu
>     only)
>   ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency
>   ArmVirtPkg: don't set PcdCoreCount
>   ArmVirtPkg: don't set PcdDebugClearMemoryValue
>   ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds
>   ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase
>   ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer
>   ArmVirtPkg/ArmVirtXen: don't set PcdShellFile
>   ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport
>   ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy
>

For the series

Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Thanks Laszlo


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs
  2019-02-06 15:46 ` [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Ard Biesheuvel
@ 2019-02-06 15:54   ` Laszlo Ersek
  0 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-06 15:54 UTC (permalink / raw)
  To: Ard Biesheuvel, Julien Grall; +Cc: edk2-devel@lists.01.org

On 02/06/19 16:46, Ard Biesheuvel wrote:
> On Wed, 6 Feb 2019 at 12:11, Laszlo Ersek <lersek@redhat.com> wrote:
>>
>> Repo:   https://github.com/lersek/edk2.git
>> Branch: armvirt_pcd_clean
>>
>> (1) The procedure described below depends on:
>>
>>     [edk2] [PATCH]
>>     BaseTools/BuildReport: fix report for platforms/arches without struct PCDs
>>
>>     http://mid.mail-archive.com/20190205112213.682-1-lersek@redhat.com
>>     https://lists.01.org/pipermail/edk2-devel/2019-February/036320.html
>>
>> (2) Background: while working on the fix in (1), I noticed that the PCD
>>     sections in the build reports of various ArmVirt platforms contained
>>     "PCDs not used by modules or in conditional directives". I thought
>>     that we should attempt to clean those up. Subsequently I built the
>>     following 36 ArmVirt platforms:
>>
>>> extra_opts=("" "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D SECURE_BOOT_ENABLE -D TTY_TERMINAL")
>>> for arch in ARM AARCH64; do
>>>   for platform in Qemu QemuKernel Xen; do
>>>     for target in NOOPT DEBUG RELEASE; do
>>>       for extra in 0 1; do
>>>         GCC5_ARM_PREFIX=arm-linux-gnu- \
>>>         GCC5_AARCH64_PREFIX=aarch64-linux-gnu- \
>>>         build \
>>>           -a $arch \
>>>           -p ArmVirtPkg/ArmVirt${platform}.dsc \
>>>           -t GCC5 \
>>>           -b $target \
>>>           -n $(getconf _NPROCESSORS_ONLN) \
>>>           --report-file=$HOME/tmp/report.$arch.$platform.$target.$extra.txt \
>>>           --report-type=PCD \
>>>           --cmd-len=65536 \
>>>           ${extra_opts[$extra]}
>>>       done
>>>     done
>>>   done
>>> done
>>
>>     Then I gradually eliminated the redundant PCD settings.
>>
>> (3) At the bottom of this email (i.e., the series cover letter), I'm
>>     including a base64-encoded tarball of report files, saved (like
>>     described in (2)) before and after the series. Diffing the reports
>>     proves that the series cleans up the PCD settings without any
>>     changes observable to modules.
>>
>> (4) The series advances in small steps. The reason is that some of the
>>     facts exposed could be surprising (I know I was surprised), and we
>>     could decide that we want to do something else (e.g. file a BZ, and
>>     fill the gap later). For such cases I wanted to be able to drop
>>     individual patches at will.
>>
>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> Cc: Julien Grall <julien.grall@linaro.org>
>>
>> Thanks,
>> Laszlo
>>
>> Laszlo Ersek (14):
>>   ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase
>>   ArmVirtPkg: don't set PcdRelocateVectorTable
>>   ArmVirtPkg/{ArmVirtQemu,ArmVirtQemuKernel}: don't set
>>     PcdTrustzoneSupport
>>   ArmVirtPkg: don't set PcdPostCodePropertyMask
>>   ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu
>>     only)
>>   ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency
>>   ArmVirtPkg: don't set PcdCoreCount
>>   ArmVirtPkg: don't set PcdDebugClearMemoryValue
>>   ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds
>>   ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase
>>   ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer
>>   ArmVirtPkg/ArmVirtXen: don't set PcdShellFile
>>   ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport
>>   ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy
>>
> 
> For the series
> 
> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> 
> Thanks Laszlo
> 

Awesome, thank you! :)

Julien, can you please fetch the series and run some light
regression-tests on Xen? Again, no functionality change is intended or
expected.

Thanks!
Laszlo


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs
  2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
                   ` (14 preceding siblings ...)
  2019-02-06 15:46 ` [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Ard Biesheuvel
@ 2019-02-13  6:13 ` Laszlo Ersek
  15 siblings, 0 replies; 18+ messages in thread
From: Laszlo Ersek @ 2019-02-13  6:13 UTC (permalink / raw)
  To: edk2-devel

On 02/06/19 13:10, Laszlo Ersek wrote:
> Repo:   https://github.com/lersek/edk2.git
> Branch: armvirt_pcd_clean
> 
> (1) The procedure described below depends on:
> 
>     [edk2] [PATCH]
>     BaseTools/BuildReport: fix report for platforms/arches without struct PCDs
> 
>     http://mid.mail-archive.com/20190205112213.682-1-lersek@redhat.com
>     https://lists.01.org/pipermail/edk2-devel/2019-February/036320.html
> 
> (2) Background: while working on the fix in (1), I noticed that the PCD
>     sections in the build reports of various ArmVirt platforms contained
>     "PCDs not used by modules or in conditional directives". I thought
>     that we should attempt to clean those up. Subsequently I built the
>     following 36 ArmVirt platforms:
> 
>> extra_opts=("" "-D HTTP_BOOT_ENABLE -D NETWORK_IP6_ENABLE -D SECURE_BOOT_ENABLE -D TTY_TERMINAL")
>> for arch in ARM AARCH64; do
>>   for platform in Qemu QemuKernel Xen; do
>>     for target in NOOPT DEBUG RELEASE; do
>>       for extra in 0 1; do
>>         GCC5_ARM_PREFIX=arm-linux-gnu- \
>>         GCC5_AARCH64_PREFIX=aarch64-linux-gnu- \
>>         build \
>>           -a $arch \
>>           -p ArmVirtPkg/ArmVirt${platform}.dsc \
>>           -t GCC5 \
>>           -b $target \
>>           -n $(getconf _NPROCESSORS_ONLN) \
>>           --report-file=$HOME/tmp/report.$arch.$platform.$target.$extra.txt \
>>           --report-type=PCD \
>>           --cmd-len=65536 \
>>           ${extra_opts[$extra]}
>>       done
>>     done
>>   done
>> done
> 
>     Then I gradually eliminated the redundant PCD settings.
> 
> (3) At the bottom of this email (i.e., the series cover letter), I'm
>     including a base64-encoded tarball of report files, saved (like
>     described in (2)) before and after the series. Diffing the reports
>     proves that the series cleans up the PCD settings without any
>     changes observable to modules.
> 
> (4) The series advances in small steps. The reason is that some of the
>     facts exposed could be surprising (I know I was surprised), and we
>     could decide that we want to do something else (e.g. file a BZ, and
>     fill the gap later). For such cases I wanted to be able to drop
>     individual patches at will.
> 
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Julien Grall <julien.grall@linaro.org>
> 
> Thanks,
> Laszlo
> 
> Laszlo Ersek (14):
>   ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase
>   ArmVirtPkg: don't set PcdRelocateVectorTable
>   ArmVirtPkg/{ArmVirtQemu,ArmVirtQemuKernel}: don't set
>     PcdTrustzoneSupport
>   ArmVirtPkg: don't set PcdPostCodePropertyMask
>   ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu
>     only)
>   ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency
>   ArmVirtPkg: don't set PcdCoreCount
>   ArmVirtPkg: don't set PcdDebugClearMemoryValue
>   ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds
>   ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase
>   ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer
>   ArmVirtPkg/ArmVirtXen: don't set PcdShellFile
>   ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport
>   ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy
> 
>  ArmVirtPkg/ArmVirt.dsc.inc                          | 27 ++------------------
>  ArmVirtPkg/ArmVirtQemu.dsc                          | 21 ++++++++++++---
>  ArmVirtPkg/ArmVirtQemuKernel.dsc                    | 17 ++++++++----
>  ArmVirtPkg/ArmVirtXen.dsc                           |  9 -------
>  ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf |  2 --
>  5 files changed, 31 insertions(+), 45 deletions(-)

series pushed as 63d8431a49cb..da06a2a2fa1e

thanks
Laszlo


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2019-02-13  6:13 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-06 12:10 [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Laszlo Ersek
2019-02-06 12:10 ` [PATCH 01/14] ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase Laszlo Ersek
2019-02-06 12:10 ` [PATCH 02/14] ArmVirtPkg: don't set PcdRelocateVectorTable Laszlo Ersek
2019-02-06 12:10 ` [PATCH 03/14] ArmVirtPkg/{ArmVirtQemu, ArmVirtQemuKernel}: don't set PcdTrustzoneSupport Laszlo Ersek
2019-02-06 12:10 ` [PATCH 04/14] ArmVirtPkg: don't set PcdPostCodePropertyMask Laszlo Ersek
2019-02-06 12:11 ` [PATCH 05/14] ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu only) Laszlo Ersek
2019-02-06 12:11 ` [PATCH 06/14] ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency Laszlo Ersek
2019-02-06 12:11 ` [PATCH 07/14] ArmVirtPkg: don't set PcdCoreCount Laszlo Ersek
2019-02-06 12:11 ` [PATCH 08/14] ArmVirtPkg: don't set PcdDebugClearMemoryValue Laszlo Ersek
2019-02-06 12:11 ` [PATCH 09/14] ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds Laszlo Ersek
2019-02-06 12:11 ` [PATCH 10/14] ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase Laszlo Ersek
2019-02-06 12:11 ` [PATCH 11/14] ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer Laszlo Ersek
2019-02-06 12:11 ` [PATCH 12/14] ArmVirtPkg/ArmVirtXen: don't set PcdShellFile Laszlo Ersek
2019-02-06 12:11 ` [PATCH 13/14] ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport Laszlo Ersek
2019-02-06 12:11 ` [PATCH 14/14] ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy Laszlo Ersek
2019-02-06 15:46 ` [PATCH 00/14] ArmVirtPkg: clean up set-but-unused PCDs Ard Biesheuvel
2019-02-06 15:54   ` Laszlo Ersek
2019-02-13  6:13 ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox