xen/arm: setup MMIO range trap handlers for hardware domain
authorOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Thu, 9 Dec 2021 07:29:16 +0000 (09:29 +0200)
committerJulien Grall <jgrall@amazon.com>
Wed, 15 Dec 2021 17:38:47 +0000 (17:38 +0000)
commitcd54f8095e8779b2c276e4a9b2fa1715426d7b35
tree7b3ed70134c15242d532a08799036af2cdfe962d
parent1050a7b91c2ef8d102b5d216ed3d12cdb6067f60
xen/arm: setup MMIO range trap handlers for hardware domain

In order for vPCI to work it needs to maintain guest and hardware
domain's views of the configuration space. For example, BARs and
COMMAND registers require emulation for guests and the guest view
of the registers needs to be in sync with the real contents of the
relevant registers. For that ECAM address space needs to also be
trapped for the hardware domain, so we need to implement PCI host
bridge specific callbacks to properly setup MMIO handlers for those
ranges depending on particular host bridge implementation.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reviewed-by: Rahul Singh <rahul.singh@arm.com>
Tested-by: Rahul Singh <rahul.singh@arm.com>
[julieng: Add ASSERT_UNREACHABLE()]
Acked-by: Julien Grall <jgrall@amazon.com>
xen/arch/arm/domain.c
xen/arch/arm/include/asm/pci.h
xen/arch/arm/pci/pci-host-common.c
xen/arch/arm/vpci.c
xen/arch/arm/vpci.h