ShellPkg: Remove PcdShellSupportOldProtocols

PcdShellSupportOldProtocols aimed to force using the following protocols:
- gEfiShellEnvironment2Guid
- gEfiShellInterfaceGuid
over the UEFI Shell 2.0 protocols:
- gEfiShellProtocolGuid

These 2 protocols seem to originate from the original EDK(1) implementation
and are now deprecated. The protocols are not implemented in EDK2.

Remove the PcdShellSupportOldProtocols which does not switch to using
the original shell protocols. Setting the PCD to TRUE prevents from
loading the UEFI Shell.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
This commit is contained in:
Pierre Gondois
2025-06-12 15:17:21 +02:00
committed by mergify[bot]
parent c2eb2136b4
commit 9d4eda962a
4 changed files with 1 additions and 17 deletions

View File

@ -395,11 +395,7 @@ UefiMain (
//
// Check PCDs for optional features that are not implemented yet.
//
if ( PcdGetBool (PcdShellSupportOldProtocols)
|| !FeaturePcdGet (PcdShellRequireHiiPlatform)
|| FeaturePcdGet (PcdShellSupportFrameworkHii)
)
{
if (!FeaturePcdGet (PcdShellRequireHiiPlatform) || FeaturePcdGet (PcdShellSupportFrameworkHii)) {
return (EFI_UNSUPPORTED);
}

View File

@ -93,7 +93,6 @@
[Pcd]
gEfiShellPkgTokenSpaceGuid.PcdShellSupportLevel ## CONSUMES
gEfiShellPkgTokenSpaceGuid.PcdShellSupportOldProtocols ## CONSUMES
gEfiShellPkgTokenSpaceGuid.PcdShellRequireHiiPlatform ## CONSUMES
gEfiShellPkgTokenSpaceGuid.PcdShellSupportFrameworkHii ## CONSUMES
gEfiShellPkgTokenSpaceGuid.PcdShellPageBreakDefault ## CONSUMES

View File

@ -1624,8 +1624,6 @@ InternalShellExecuteDevicePath (
Status = gBS->InstallProtocolInterface (&NewHandle, &gEfiShellParametersProtocolGuid, EFI_NATIVE_INTERFACE, &ShellParamsProtocol);
ASSERT_EFI_ERROR (Status);
/// @todo initialize and install ShellInterface protocol on the new image for compatibility if - PcdGetBool(PcdShellSupportOldProtocols)
//
// now start the image and if the caller wanted the return code pass it to them...
//
@ -3889,11 +3887,6 @@ CreatePopulateInstallShellProtocol (
);
}
if (PcdGetBool (PcdShellSupportOldProtocols)) {
/// @todo support ShellEnvironment2
/// @todo do we need to support ShellEnvironment (not ShellEnvironment2) also?
}
if (!EFI_ERROR (Status)) {
*NewShell = &mShellProtocol;
}

View File

@ -109,10 +109,6 @@
gEfiShellPkgTokenSpaceGuid.PcdShellMaxHistoryCommandCount|0x0020|UINT16|0x00000014
[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
## This flag is used to control the protocols produced by the shell
# If TRUE the shell will produce EFI_SHELL_ENVIRONMENT2 and EFI_SHELL_INTERFACE
gEfiShellPkgTokenSpaceGuid.PcdShellSupportOldProtocols|FALSE|BOOLEAN|0x00000002
## this flag determines whether Page Break (-b) defaults to on or off in the shell
gEfiShellPkgTokenSpaceGuid.PcdShellPageBreakDefault|FALSE|BOOLEAN|0x00000006