On 04/30/20 03:12, Rebecca Cran wrote: > On bhyve, the ACPI timer is located at a fixed IO address; it need > not be programmed into, nor fetched from, the PMBA -- power > management base address -- register of the PCI host bridge. > > Signed-off-by: Rebecca Cran <rebe...@bsdio.com> > Cc: Jordan Justen <jordan.l.jus...@intel.com> > Cc: Laszlo Ersek <ler...@redhat.com> > Cc: Ard Biesheuvel <ard.biesheu...@arm.com> > --- > OvmfPkg/Include/IndustryStandard/Bhyve.h | 16 ++++++++++ > OvmfPkg/Include/OvmfPlatforms.h | 1 + > .../AcpiTimerLib/BaseAcpiTimerLibBhyve.c | 32 +++++++++++++++++++ > .../AcpiTimerLib/BaseAcpiTimerLibBhyve.inf | 30 +++++++++++++++++ > 4 files changed, 79 insertions(+) > create mode 100644 OvmfPkg/Include/IndustryStandard/Bhyve.h > create mode 100644 OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.c > create mode 100644 OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.inf > > diff --git a/OvmfPkg/Include/IndustryStandard/Bhyve.h > b/OvmfPkg/Include/IndustryStandard/Bhyve.h > new file mode 100644 > index 0000000000..02ce5587ee > --- /dev/null > +++ b/OvmfPkg/Include/IndustryStandard/Bhyve.h > @@ -0,0 +1,16 @@ > +/** @file > + Various register numbers and value bits based on FreeBSD's bhyve > + at r359530. > + - https://svnweb.freebsd.org/base?view=revision&revision=359530 > + > + Copyright (C) 2020, Rebecca Cran <rebe...@bsdio.com> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef __BHYVE_H__ > +#define __BHYVE_H__ > + > +#define BHYVE_ACPI_TIMER_IO_ADDR 0x408 > + > +#endif // __BHYVE_H__ > diff --git a/OvmfPkg/Include/OvmfPlatforms.h b/OvmfPkg/Include/OvmfPlatforms.h > index 59459231e8..77dd818e30 100644 > --- a/OvmfPkg/Include/OvmfPlatforms.h > +++ b/OvmfPkg/Include/OvmfPlatforms.h > @@ -14,6 +14,7 @@ > #include <IndustryStandard/Pci22.h> > #include <IndustryStandard/Q35MchIch9.h> > #include <IndustryStandard/I440FxPiix4.h> > +#include <IndustryStandard/Bhyve.h> > > // > // OVMF Host Bridge DID Address > diff --git a/OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.c > b/OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.c > new file mode 100644 > index 0000000000..f927e27188 > --- /dev/null > +++ b/OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.c > @@ -0,0 +1,32 @@ > +/** @file > + Provide InternalAcpiGetTimerTick for the bhyve instance of the > + Base ACPI Timer Library > + > + Copyright (C) 2020, Rebecca Cran <rebe...@bsdio.com> > + Copyright (C) 2014, Gabriel L. Somlo <so...@cmu.edu> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include <Library/IoLib.h> > +#include <OvmfPlatforms.h> > + > +/** > + Internal function to read the current tick counter of ACPI. > + > + Read the current ACPI tick counter using the counter address cached > + by this instance's constructor. > + > + @return The tick counter read. > + > +**/ > +UINT32 > +InternalAcpiGetTimerTick ( > + VOID > + ) > +{ > + // > + // Return the current ACPI timer value. > + // > + return IoRead32 (BHYVE_ACPI_TIMER_IO_ADDR); > +} > diff --git a/OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.inf > b/OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.inf > new file mode 100644 > index 0000000000..14b7479e67 > --- /dev/null > +++ b/OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.inf > @@ -0,0 +1,30 @@ > +## @file > +# Base ACPI Timer Library Instance for Bhyve. > +# > +# Copyright (C) 2020, Rebecca Cran <rebe...@bsdio.com> > +# Copyright (C) 2014, Gabriel L. Somlo <so...@cmu.edu> > +# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved. > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > + INF_VERSION = 0x00010005 > + BASE_NAME = BaseAcpiTimerLibBhyve > + FILE_GUID = A5E3B247-7302-11EA-9C04-3CECEF0C1C08 > + MODULE_TYPE = BASE > + VERSION_STRING = 1.0 > + LIBRARY_CLASS = TimerLib > + > +[Sources] > + AcpiTimerLib.c > + AcpiTimerLib.h > + BaseAcpiTimerLibBhyve.c > + > +[Packages] > + MdePkg/MdePkg.dec > + OvmfPkg/OvmfPkg.dec > + > +[LibraryClasses] > + IoLib >
Reviewed-by: Laszlo Ersek <ler...@redhat.com> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58432): https://edk2.groups.io/g/devel/message/58432 Mute This Topic: https://groups.io/mt/73367068/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-