hv: add vgpio device model support

When HV pass through the P2SB MMIO device to pre-launched VM, vgpio
device model traps MMIO access to the GPIO registers within P2SB so
that it can expose virtual IOAPIC pins to the VM in accordance with
the programmed mappings between gsi and vgsi.

Tracked-On: #5246

Signed-off-by: Toshiki Nishioka <toshiki.nishioka@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Nishioka, Toshiki
2020-08-28 01:14:25 +09:00
committed by wenlingz
parent 19f74d84a6
commit 77fb21e98c
6 changed files with 172 additions and 1 deletions

View File

@@ -0,0 +1,12 @@
/*
* Copyright (C) 2020 Intel Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef VGPIO_H
#define VGPIO_H
void register_vgpio_handler(struct acrn_vm *vm, const struct acrn_mmiodev *mmiodev);
#endif /* MMIO_DEV_H */

View File

@@ -119,6 +119,7 @@ uint32_t get_vm_gsicount(const struct acrn_vm *vm);
void vioapic_broadcast_eoi(const struct acrn_vm *vm, uint32_t vector);
void vioapic_get_rte(const struct acrn_vm *vm, uint32_t vgsi, union ioapic_rte *rte);
int32_t vioapic_mmio_access_handler(struct io_request *io_req, void *handler_private_data);
struct acrn_single_vioapic *vgsi_to_vioapic_and_vpin(const struct acrn_vm *vm, uint32_t vgsi, uint32_t *vpin);
/**
* @}