From c3580093520809cbfe2abd0e702d53707b7782a9 Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Mon, 31 Jul 2023 11:40:32 -0500 Subject: [PATCH] Set PcdSerialClockRate from SerialPortInfo in UefiPayloadEntry Signed-off-by: Matt DeVillier --- UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c | 8 ++++++++ UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf | 1 + 2 files changed, 9 insertions(+) diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c index 030a5baed914..abda59312d5e 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.c @@ -432,6 +432,14 @@ _ModuleEntryPoint ( UniversalSerialPort->RegisterBase = SerialPortInfo.BaseAddr; UniversalSerialPort->BaudRate = SerialPortInfo.Baud; UniversalSerialPort->RegisterStride = (UINT8)SerialPortInfo.RegWidth; + // Set PCD here (vs in PlatformHookLib.c) to avoid adding a new field to UniversalSerialPort struct + if (SerialPortInfo.InputHertz > 0) { + Status = PcdSet32S (PcdSerialClockRate, SerialPortInfo.InputHertz); + if (RETURN_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Failed to set PcdSerialClockRate; Status = %r\n", Status)); + return Status; + } + } } // The library constructors might depend on serial port, so call it after serial port hob diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf index a3ff4b86eaf6..e84ef664d3d5 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf @@ -96,3 +96,4 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## SOMETIMES_CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy ## SOMETIMES_CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ## PRODUCES