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);
 | |
| }
 |