When dynamic command drivers are built into FV and start during
boot, they fails. Because Shell protocol doesn't exist during boot.
The patch sets Shell protocol and also set PcdShellLibAutoInitialize
to FALSE to ensure that
1. Shell protocol check doesn't happen in driver's entry point.
2. Driver can get the Shell protocol in DynamicCommand.Handler().
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
)\r
{\r
gEfiShellParametersProtocol = ShellParameters;\r
)\r
{\r
gEfiShellParametersProtocol = ShellParameters;\r
+ gEfiShellProtocol = Shell;\r
return RunDp (gImageHandle, SystemTable);\r
}\r
\r
return RunDp (gImageHandle, SystemTable);\r
}\r
\r
)\r
{\r
gEfiShellParametersProtocol = ShellParameters;\r
)\r
{\r
gEfiShellParametersProtocol = ShellParameters;\r
+ gEfiShellProtocol = Shell;\r
return RunTftp (gImageHandle, SystemTable);\r
}\r
\r
return RunTftp (gImageHandle, SystemTable);\r
}\r
\r
!endif #$(NO_SHELL_PROFILES)\r
}\r
\r
!endif #$(NO_SHELL_PROFILES)\r
}\r
\r
- ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf\r
+ ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {\r
+ <PcdsFixedAtBuild>\r
+ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
+ }\r
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf\r
ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf {\r
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpApp.inf\r
ShellPkg/DynamicCommand/DpDynamicCommand/DpDynamicCommand.inf {\r
+ <PcdsFixedAtBuild>\r
+ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE\r
<LibraryClasses>\r
PerformanceLib|MdeModulePkg/Library/DxeSmmPerformanceLib/DxeSmmPerformanceLib.inf\r
}\r
<LibraryClasses>\r
PerformanceLib|MdeModulePkg/Library/DxeSmmPerformanceLib/DxeSmmPerformanceLib.inf\r
}\r