mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
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
Sponsored by: Intel Corporation
Reviewed by: grehan
Approved by: philip (mentor)
Differential Revision: https://reviews.freebsd.org/D24066
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| iommu.c | ||
| iommu.h | ||
| ppt.c | ||
| ppt.h | ||
| vatpic.c | ||
| vatpic.h | ||
| vatpit.c | ||
| vatpit.h | ||
| vhpet.c | ||
| vhpet.h | ||
| vioapic.c | ||
| vioapic.h | ||
| vlapic.c | ||
| vlapic.h | ||
| vlapic_priv.h | ||
| vpmtmr.c | ||
| vpmtmr.h | ||
| vrtc.c | ||
| vrtc.h | ||