Set PcdSerialClockRate from SerialPortInfo in UefiPayloadEntry

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
Matt DeVillier 2023-07-31 11:40:32 -05:00 committed by mergify[bot]
parent 3a3b12cbda
commit c358009352
2 changed files with 9 additions and 0 deletions

View File

@ -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

View File

@ -96,3 +96,4 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## SOMETIMES_CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy ## SOMETIMES_CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ## PRODUCES