From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out02.mta.xmission.com (out02.mta.xmission.com [166.70.13.232]) by mx.groups.io with SMTP id smtpd.web10.1739.1588209137691062007 for ; Wed, 29 Apr 2020 18:12:17 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bsdio.com header.s=xmission header.b=kDq+aVBl; spf=pass (domain: bsdio.com, ip: 166.70.13.232, mailfrom: rebecca@bsdio.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=simple/simple; d=bsdio.com; s=xmission; h=Subject:Content-Transfer-Encoding:MIME-Version:Message-Id:Date: Cc:To:From:Sender:Reply-To:Content-Type:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=JtdjkBAnazBR3OaXW+kKvq7Dx0fGW2qZ0HOzt+g7SG8=; b=kDq+aVBlng3clq5Wqk1e+zXZ+7 4at0zANvugZsnD2MrKfFMTwZqx6JYfMp+r2bqmbqdfBj7riR2QqMbYq5l4RGDLj4QCBMXMRNy3awg g+eyiEZErj5zgapYctsDYZHb/WGxc5orB2Gz1SlfMC/GBpSysWFnT61+IZgVnoiQ4Pew=; Received: from in01.mta.xmission.com ([166.70.13.51]) by out02.mta.xmission.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jTxkO-0006fY-4f; Wed, 29 Apr 2020 19:12:16 -0600 Received: from mta4.zcs.xmission.com ([166.70.13.68]) by in01.mta.xmission.com with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.87) (envelope-from ) id 1jTxkM-0008NY-RT; Wed, 29 Apr 2020 19:12:15 -0600 Received: from localhost (localhost [127.0.0.1]) by mta4.zcs.xmission.com (Postfix) with ESMTP id A090A500798; Wed, 29 Apr 2020 19:12:14 -0600 (MDT) X-Amavis-Modified: Mail body modified (using disclaimer) - mta4.zcs.xmission.com Received: from mta4.zcs.xmission.com ([127.0.0.1]) by localhost (mta4.zcs.xmission.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4SqiBYNkDZTp; Wed, 29 Apr 2020 19:12:14 -0600 (MDT) Received: from photon.int.bluestop.org (muon.bluestop.org [65.103.231.193]) by mta4.zcs.xmission.com (Postfix) with ESMTPSA id 4485350077B; Wed, 29 Apr 2020 19:12:14 -0600 (MDT) From: "Rebecca Cran" To: devel@edk2.groups.io Cc: Rebecca Cran , Jordan Justen , Laszlo Ersek , Ard Biesheuvel Date: Wed, 29 Apr 2020 19:12:12 -0600 Message-Id: <20200430011212.612386-1-rebecca@bsdio.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-XM-SPF: eid=1jTxkM-0008NY-RT;;;mid=<20200430011212.612386-1-rebecca@bsdio.com>;;;hst=in01.mta.xmission.com;;;ip=166.70.13.68;;;frm=rebecca@bsdio.com;;;spf=pass X-SA-Exim-Connect-IP: 166.70.13.68 X-SA-Exim-Mail-From: rebecca@bsdio.com X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on sa08.xmission.com X-Spam-Level: * X-Spam-Status: No, score=1.0 required=8.0 tests=ALL_TRUSTED,BAYES_50, DCC_CHECK_NEGATIVE,LotsOfNums_01 autolearn=disabled version=3.4.2 X-Spam-Report: * -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP * 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% * [score: 0.5000] * 1.2 LotsOfNums_01 BODY: Lots of long strings of numbers * -0.0 DCC_CHECK_NEGATIVE Not listed in DCC * [sa08 1397; IP=ok Body=1 Fuz1=1] [Fuz2=1] X-Spam-DCC: XMission; sa08 1397; IP=ok Body=1 Fuz1=1 Fuz2=1 X-Spam-Combo: *;devel@edk2.groups.io X-Spam-Relay-Country: X-Spam-Timing: total 512 ms - load_scoreonly_sql: 0.05 (0.0%), signal_user_changed: 14 (2.7%), b_tie_ro: 12 (2.3%), parse: 1.26 (0.2%), extract_message_metadata: 24 (4.6%), get_uri_detail_list: 2.8 (0.5%), tests_pri_-1000: 6 (1.3%), tests_pri_-950: 1.33 (0.3%), tests_pri_-900: 1.17 (0.2%), tests_pri_-90: 74 (14.5%), check_bayes: 72 (14.1%), b_tokenize: 11 (2.1%), b_tok_get_all: 11 (2.1%), b_comp_prob: 2.7 (0.5%), b_tok_touch_all: 43 (8.5%), b_finish: 1.29 (0.3%), tests_pri_0: 322 (63.0%), check_dkim_signature: 0.52 (0.1%), check_dkim_adsp: 60 (11.7%), poll_dns_idle: 107 (20.8%), tests_pri_10: 2.4 (0.5%), tests_pri_500: 62 (12.1%), rewrite_mail: 0.00 (0.0%) Subject: [PATCH] OvmfPkg: Add bhyve support into AcpiTimerLib X-Spam-Flag: No X-SA-Exim-Version: 4.2.1 (built Thu, 05 May 2016 13:38:54 -0600) X-SA-Exim-Scanned: Yes (on in01.mta.xmission.com) Content-Transfer-Encoding: quoted-printable 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 Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel --- 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/Ind= ustryStandard/Bhyve.h new file mode 100644 index 0000000000..02ce5587ee --- /dev/null +++ b/OvmfPkg/Include/IndustryStandard/Bhyve.h @@ -0,0 +1,16 @@ +/** @file=0D + Various register numbers and value bits based on FreeBSD's bhyve=0D + at r359530.=0D + - https://svnweb.freebsd.org/base?view=3Drevision&revision=3D359530=0D +=0D + Copyright (C) 2020, Rebecca Cran =0D +=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +**/=0D +=0D +#ifndef __BHYVE_H__=0D +#define __BHYVE_H__=0D +=0D +#define BHYVE_ACPI_TIMER_IO_ADDR 0x408=0D +=0D +#endif // __BHYVE_H__=0D diff --git a/OvmfPkg/Include/OvmfPlatforms.h b/OvmfPkg/Include/OvmfPlatform= s.h index 59459231e8..77dd818e30 100644 --- a/OvmfPkg/Include/OvmfPlatforms.h +++ b/OvmfPkg/Include/OvmfPlatforms.h @@ -14,6 +14,7 @@ #include =0D #include =0D #include =0D +#include =0D =0D //=0D // OVMF Host Bridge DID Address=0D 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=0D + Provide InternalAcpiGetTimerTick for the bhyve instance of the=0D + Base ACPI Timer Library=0D +=0D + Copyright (C) 2020, Rebecca Cran =0D + Copyright (C) 2014, Gabriel L. Somlo =0D +=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +**/=0D +=0D +#include =0D +#include =0D +=0D +/**=0D + Internal function to read the current tick counter of ACPI.=0D +=0D + Read the current ACPI tick counter using the counter address cached=0D + by this instance's constructor.=0D +=0D + @return The tick counter read.=0D +=0D +**/=0D +UINT32=0D +InternalAcpiGetTimerTick (=0D + VOID=0D + )=0D +{=0D + //=0D + // Return the current ACPI timer value.=0D + //=0D + return IoRead32 (BHYVE_ACPI_TIMER_IO_ADDR);=0D +}=0D diff --git a/OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.inf b/OvmfP= kg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.inf new file mode 100644 index 0000000000..14b7479e67 --- /dev/null +++ b/OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLibBhyve.inf @@ -0,0 +1,30 @@ +## @file=0D +# Base ACPI Timer Library Instance for Bhyve.=0D +#=0D +# Copyright (C) 2020, Rebecca Cran =0D +# Copyright (C) 2014, Gabriel L. Somlo =0D +# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.=0D +#=0D +# SPDX-License-Identifier: BSD-2-Clause-Patent=0D +#=0D +##=0D +=0D +[Defines]=0D + INF_VERSION =3D 0x00010005=0D + BASE_NAME =3D BaseAcpiTimerLibBhyve=0D + FILE_GUID =3D A5E3B247-7302-11EA-9C04-3CECEF0C1C08=0D + MODULE_TYPE =3D BASE=0D + VERSION_STRING =3D 1.0=0D + LIBRARY_CLASS =3D TimerLib=0D +=0D +[Sources]=0D + AcpiTimerLib.c=0D + AcpiTimerLib.h=0D + BaseAcpiTimerLibBhyve.c=0D +=0D +[Packages]=0D + MdePkg/MdePkg.dec=0D + OvmfPkg/OvmfPkg.dec=0D +=0D +[LibraryClasses]=0D + IoLib=0D --=20 2.25.1