/** @file
Copyright (c) 2020, ARM Ltd. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
#include
#include
EFI_STATUS
EFIAPI
DualSerialPortDxeLibConstructor (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
RASPBERRY_PI_FIRMWARE_PROTOCOL *Firmware;
UINT32 ClockRate;
EFI_STATUS Status;
Status = SystemTable->BootServices->LocateProtocol (
&gRaspberryPiFirmwareProtocolGuid,
NULL, (VOID **)&Firmware);
if (EFI_ERROR (Status)) {
return Status;
}
Status = Firmware->GetClockRate (RPI_MBOX_CLOCK_RATE_CORE, &ClockRate);
if (EFI_ERROR (Status)) {
return Status;
}
PatchPcdSet32 (PcdSerialClockRate, ClockRate);
return EFI_SUCCESS;
}