audk/ArmVirtPkg
Laszlo Ersek 5b54c92a65 ArmVirtPkg: undo bogus component name and driver diagnostics disablement
The entry point function of any UEFI_DRIVER that conforms to the UEFI
driver model must install an instance of the EFI_DRIVER_BINDING_PROTOCOL
on the image handle. Beyond that, the following protocols are optional:

- EFI_COMPONENT_NAME_PROTOCOL
- EFI_COMPONENT_NAME2_PROTOCOL
- EFI_DRIVER_CONFIGURATION_PROTOCOL
- EFI_DRIVER_CONFIGURATION2_PROTOCOL
- EFI_DRIVER_DIAGNOSTICS_PROTOCOL
- EFI_DRIVER_DIAGNOSTICS2_PROTOCOL

The UefiLib functions

- EfiLibInstallAllDriverProtocols()
- EfiLibInstallAllDriverProtocols2()
- EfiLibInstallDriverBindingComponentName2()

are convenience helpers for such UEFI_DRIVERs. They simplify the
installation of the above protocols.

The UefiLib instance in "MdePkg/Library/UefiLib/UefiDriverModel.c" allows
platforms to control these functions through the MdePkg feature PCDs

- PcdComponentNameDisable
- PcdComponentName2Disable
- PcdDriverDiagnosticsDisable
- PcdDriverDiagnostics2Disable

If any of these PCDs are set to TRUE, then the helper functions will not
install the corresponding protocol interfaces on the image handle, even if
the driver passes in non-NULL protocol interfaces.

In other words, at build time, a platform can forcibly prevent all drivers
that employ UefiLib from producing these protocols.

In ArmVirtPkg, that's what we've been doing forever, for no reason at all.
This is why we haven't been seeing component and driver names from the DH,
DEVICES, DRIVERS and DEVTREE shell commands, unlike in OvmfPkg.

The default value for all these PCDs is FALSE, in "MdePkg/MdePkg.dec".
Revert ArmVirtPkg to the sane defaults.

This bug dates back to the inception of ArmVirtPkg (called
ArmPlatformPkg/ArmVirtualizationPkg at the time).

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Fixes: 6f5872b1f4
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2016-10-15 19:02:31 +02:00
..
FdtClientDxe ArmVirtPkg/FdtClientDxe: add methods to iterate over memory nodes 2016-09-15 15:39:29 +01:00
HighMemDxe ArmVirtPkg/HighMemDxe: move to FDT client protocol 2016-09-15 15:39:34 +01:00
Include ArmVirtPkg/FdtClientDxe: add methods to iterate over memory nodes 2016-09-15 15:39:29 +01:00
Library ArmVirtPkg: Use the new LogoDxe driver 2016-09-28 16:22:35 +08:00
PrePi ArmVirtPkg: clean up assembly source files 2016-08-11 12:29:31 +02:00
VirtioFdtDxe
XenAcpiPlatformDxe ArmVirtPkg/FdtClientDxe: report address and size cell count directly 2016-09-15 15:31:24 +01:00
XenioFdtDxe ArmVirtPkg/FdtClientDxe: report address and size cell count directly 2016-09-15 15:31:24 +01:00
ArmVirt.dsc.inc ArmVirtPkg: undo bogus component name and driver diagnostics disablement 2016-10-15 19:02:31 +02:00
ArmVirtPkg.dec ArmVirtPkg: remove PcdKludgeMapPciMmioAsCached 2016-09-01 22:56:04 +02:00
ArmVirtQemu.dsc ArmVirtPkg: Remove unused BltLib reference 2016-10-12 10:42:18 +08:00
ArmVirtQemu.fdf
ArmVirtQemuFvMain.fdf.inc ArmVirtPkg: Use the new LogoDxe driver 2016-09-28 16:22:35 +08:00
ArmVirtQemuKernel.dsc ArmVirtPkg: Remove unused BltLib reference 2016-10-12 10:42:18 +08:00
ArmVirtQemuKernel.fdf
ArmVirtRules.fdf.inc ArmVirtPkg: Add Ramdisk support to ArmVirtPkg platforms 2016-08-22 09:05:17 +02:00
ArmVirtXen.dsc ArmVirtPkg: replace all ArmLib resolutions with ArmBaseLib 2016-09-08 10:02:32 +01:00
ArmVirtXen.fdf ArmVirtPkg: enable EBC interpreter for AArch64 2016-08-26 11:53:48 +01:00
Contributions.txt
License.txt
VarStore.fdf.inc