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 <rebecca@bsdio.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> Message-Id: <20200430011212.612386-1-rebecca@bsdio.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
		
			
				
	
	
		
			33 lines
		
	
	
		
			709 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			709 B
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Provide InternalAcpiGetTimerTick for the bhyve instance of the
 | 
						|
  Base ACPI Timer Library
 | 
						|
 | 
						|
  Copyright (C) 2020, Rebecca Cran <rebecca@bsdio.com>
 | 
						|
  Copyright (C) 2014, Gabriel L. Somlo <somlo@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);
 | 
						|
}
 |