On 8/23/2018 7:12 PM, Leif Lindholm wrote:
I don't see how it would be less risky to include new code rather than using the existing and well-tested solution for the same problem.
OK, replace with ConsolePrefDxe in v4.
On Thu, 23 Aug 2018, 11:51 Ming, <ming.huang@linaro.org mailto:ming.huang@linaro.org> wrote:
Hi Leif, Is it ok replace with ConsolePrefDxe after ERP 18.08? On 8/22/2018 10:49 AM, Ming wrote: > > > On 8/22/2018 5:11 AM, Leif Lindholm wrote: >> On Thu, Aug 16, 2018 at 08:12:35PM +0800, Ming Huang wrote: >>> If install SPCR table, KVM will not output while install or boot >>> some OS, like ubuntu, so add SPCR switch setup item and set it >>> disable by default. >> >> This one was supposed to be replaced with >> EmbeddedPkg/Drivers/ConsolePrefDxe, right? > > Yes, I will take a look ConsolePrefDxe and replace with it after ERP 18.08. > >> >> / >> Leif >> >>> Contributed-under: TianoCore Contribution Agreement 1.1 >>> Signed-off-by: Ming Huang <ming.huang@linaro.org <mailto:ming.huang@linaro.org>> >>> Signed-off-by: Heyi Guo <heyi.guo@linaro.org <mailto:heyi.guo@linaro.org>> >>> --- >>> Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/AcpiPlatformDxe.inf | 1 + >>> Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/UpdateAcpiTable.c | 24 ++++++++++++++++++++ >>> 2 files changed, 25 insertions(+) >>> >>> diff --git a/Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/AcpiPlatformDxe.inf b/Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/AcpiPlatformDxe.inf >>> index 281a4f2ebd..3d133aff85 100644 >>> --- a/Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/AcpiPlatformDxe.inf >>> +++ b/Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/AcpiPlatformDxe.inf >>> @@ -51,6 +51,7 @@ >>> >>> [Guids] >>> gHisiEfiMemoryMapGuid >>> + gOemConfigGuid >>> >>> [Pcd] >>> gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiTableStorageFile ## CONSUMES >>> diff --git a/Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/UpdateAcpiTable.c b/Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/UpdateAcpiTable.c >>> index 54f49977c3..32878ca4f9 100644 >>> --- a/Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/UpdateAcpiTable.c >>> +++ b/Silicon/Hisilicon/Drivers/HisiAcpiPlatformDxe/UpdateAcpiTable.c >>> @@ -16,8 +16,10 @@ >>> #include <Library/DebugLib.h> >>> #include <Library/HobLib.h> >>> #include <Library/HwMemInitLib.h> >>> +#include <Library/OemConfigData.h> >>> #include <Library/OemMiscLib.h> >>> #include <Library/UefiBootServicesTableLib.h> >>> +#include <Library/UefiRuntimeServicesTableLib.h> >>> #include <Library/UefiLib.h> >>> >>> #define CORECOUNT(X) ((X) * CORE_NUM_PER_SOCKET) >>> @@ -114,6 +116,25 @@ UpdateSlit ( >>> return EFI_SUCCESS; >>> } >>> >>> +STATIC >>> +EFI_STATUS >>> +IsNeedSpcr ( >>> + IN OUT EFI_ACPI_DESCRIPTION_HEADER *Table >>> + ) >>> +{ >>> + EFI_STATUS Status; >>> + OEM_CONFIG_DATA SetupData; >>> + UINTN DataSize = sizeof (OEM_CONFIG_DATA); >>> + >>> + Status = gRT->GetVariable (OEM_CONFIG_NAME, &gOemConfigGuid, NULL, &DataSize, &SetupData); >>> + if (!EFI_ERROR (Status) && (SetupData.EnableSpcr == FALSE)) { >>> + return EFI_ABORTED; >>> + } >>> + >>> + return EFI_SUCCESS; >>> +} >>> + >>> + >>> EFI_STATUS >>> UpdateAcpiTable ( >>> IN OUT EFI_ACPI_DESCRIPTION_HEADER *TableHeader >>> @@ -130,6 +151,9 @@ UpdateAcpiTable ( >>> case EFI_ACPI_6_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE: >>> Status = UpdateSlit (TableHeader); >>> break; >>> + case EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE: >>> + Status = IsNeedSpcr (TableHeader); >>> + break; >>> } >>> return Status; >>> } >>> -- >>> 2.17.0 >>>