freebsd-dev/sys
D Scott Phillips f8a6ec2d57 bhyve: support relocating fbuf and passthru data BARs
We want to allow the UEFI firmware to enumerate and assign
addresses to PCI devices so we can boot from NVMe[1]. Address
assignment of PCI BARs is properly handled by the PCI emulation
code in general, but a few specific cases need additional support.
fbuf and passthru map additional objects into the guest physical
address space and so need to handle address updates. Here we add a
callback to emulated PCI devices to inform them of a BAR
configuration change. fbuf and passthru then watch for these BAR
changes and relocate the frame buffer memory segment and passthru
device mmio area respectively.

We also add new VM_MUNMAP_MEMSEG and VM_UNMAP_PPTDEV_MMIO ioctls
to vmm(4) to facilitate the unmapping needed for addres updates.

[1]: https://github.com/freebsd/uefi-edk2/pull/9/

Originally by:	scottph
MFC After:	1 week
Sponsored by:	Intel Corporation
Reviewed by:	grehan
Approved by:	philip (mentor)
Differential Revision:	https://reviews.freebsd.org/D24066
2021-03-19 11:04:36 +08:00
..
amd64 bhyve: support relocating fbuf and passthru data BARs 2021-03-19 11:04:36 +08:00
arm mvebu_gpio: Fix settings of gpio pin direction. 2021-03-07 11:41:30 +01:00
arm64 Rename linux_set_upcall_kse() to linux_set_upcall(). 2021-03-18 12:14:34 -07:00
bsm
cam cam: Run all XPT_ASYNC ccbs in a dedicated thread 2021-03-12 13:29:42 -07:00
cddl Handle functions that use a nop in the arm64 fbt 2021-03-03 14:18:03 +00:00
compat Rename linux_set_upcall_kse() to linux_set_upcall(). 2021-03-18 12:14:34 -07:00
conf kern.mk: fix -Wno-error style to fix build with Clang 12 2021-03-10 17:34:35 -05:00
contrib vfs: fix vnlru marker handling for filtered/unfiltered cases 2021-03-18 14:59:03 +00:00
crypto armv8crypto: fix AES-XTS regression introduced by ed9b7f44 2021-03-07 12:03:47 -08:00
ddb ddb: enable the use of ^C and ^S/^Q 2021-03-14 16:04:27 -07:00
dev vtnet: fix TSO for TCP/IPv6 2021-03-18 21:32:20 +01:00
dts
fs fusefs: fix two bugs regarding fcntl file locks 2021-03-18 17:09:10 -06:00
gdb
geom gmirror: Pre-allocate the timeout event structure 2021-03-11 15:45:15 -05:00
gnu
i386 Rename linux_set_upcall_kse() to linux_set_upcall(). 2021-03-18 12:14:34 -07:00
isa Move back the isa non-PNP driver deadline to FreeBSD 14. 2021-03-08 16:00:23 -07:00
kern Unbreak MSG_CMSG_CLOEXEC 2021-03-18 20:52:20 +00:00
kgssapi
libkern
mips nlmrsa: Mark deprecated for 14. 2021-03-16 14:43:03 -07:00
modules base: remove if_wg(4) and associated utilities, manpage 2021-03-17 09:14:48 -05:00
net base: remove if_wg(4) and associated utilities, manpage 2021-03-17 09:14:48 -05:00
net80211 net80211: split up ieee80211_probereq() 2021-03-18 11:02:45 +00:00
netgraph
netinet fix panic when rescue retransmission and FIN overlap 2021-03-17 17:12:04 +01:00
netinet6 base: remove if_wg(4) and associated utilities, manpage 2021-03-17 09:14:48 -05:00
netipsec
netpfil pfsync: Unconditionally push packets when requesting state updates 2021-03-17 19:18:14 +01:00
netsmb
nfs nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsclient nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsserver nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nlm
ofed ofed: quiet gcc -Wint-in-bool-context 2021-02-24 15:56:16 -08:00
opencrypto ktls: Fix non-inplace TLS 1.3 encryption. 2021-03-10 11:07:40 -08:00
powerpc SPDX: Spell 4 clause BSD license correctly 2021-03-11 14:17:54 -07:00
riscv riscv: fix errors in some atomic type aliases 2021-03-04 16:59:58 -04:00
rpc
security Add a comment on why the call to mac_vnode_relabel() might be in the wrong 2021-02-27 16:25:26 +00:00
sys vfs: fix vnlru marker handling for filtered/unfiltered cases 2021-03-18 14:59:03 +00:00
teken
tests
tools
ufs softdep_unmount: assert that no dandling dependencies are left 2021-03-12 13:31:08 +02:00
vm Remove unused obj variable missed in r354870. 2021-03-17 15:29:15 -07:00
x86 xen: move x86-specific xen_vector_callback_enabled to sys/x86 2021-03-15 14:20:21 +01:00
xdr
xen xen: move x86-specific xen_vector_callback_enabled to sys/x86 2021-03-15 14:20:21 +01:00
Makefile