#
7ab1a32c |
| 31-Oct-2024 |
Ruslan Bukin <br@FreeBSD.org> |
bhyve/riscv: Initial import.
Add machine-dependent parts for bhyve hypervisor to support virtualization on RISC-V ISA.
No objection: markj Sponsored by: UK Research and Innovation Differential Revi
bhyve/riscv: Initial import.
Add machine-dependent parts for bhyve hypervisor to support virtualization on RISC-V ISA.
No objection: markj Sponsored by: UK Research and Innovation Differential Revision: https://reviews.freebsd.org/D45512
show more ...
|
#
7cfdb02a |
| 21-Sep-2024 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Fix an inverted check when enabling PCI busmastering
Reported by: Andy Fiddaman <andy@omniosce.org> Fixes: e962b37bf0ff ("bhyve: Do not enable PCI BAR decoding if a boot ROM is present")
|
Revision tags: release/13.4.0 |
|
#
e962b37b |
| 19-Aug-2024 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Do not enable PCI BAR decoding if a boot ROM is present
Let the boot ROM handle BAR initialization. This fixes a problem where u-boot's BAR remapping conflicts with some limitations in bhyve
bhyve: Do not enable PCI BAR decoding if a boot ROM is present
Let the boot ROM handle BAR initialization. This fixes a problem where u-boot's BAR remapping conflicts with some limitations in bhyve. See https://lists.freebsd.org/archives/freebsd-virtualization/2024-April/002103.html for a description of what goes wrong.
The old behaviour can be restored by setting the pci.enable_bars configuration variable.
Reviewed by: corvink, jhb Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D45049
show more ...
|
Revision tags: release/14.1.0 |
|
#
ec8a394d |
| 11-Apr-2024 |
Elyes Haouas <ehaouas@noos.fr> |
usr.sbin: Remove repeated words
Signed-off-by: Elyes Haouas <ehaouas@noos.fr> Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/887
|
Revision tags: release/13.3.0 |
|
#
95b948c1 |
| 19-Feb-2024 |
Jessica Clarke <jrtc27@jrtc27.com> |
bhyve: Fix arm64 PCI I/O range to match FDT
This is supposed to combine with the memory range to make one contiguous block, as is laid out in the FDT, so make this match what the OS is told and thus
bhyve: Fix arm64 PCI I/O range to match FDT
This is supposed to combine with the memory range to make one contiguous block, as is laid out in the FDT, so make this match what the OS is told and thus actually configures.
Also drop the confusing leading zero from all three of these constants that is making these 9 rather than 8 hex digits long (as one would expect for a 32-bit address).
Reviewed by: jhb MFC after: 2 weeks Obtained from: CheriBSD
show more ...
|
#
0efad4ac |
| 17-Feb-2024 |
Jessica Clarke <jrtc27@jrtc27.com> |
bhyve: Support legacy PCI interrupts on arm64
This allows us to remove various #ifdef hacks and enable building more PCI devices.
Note that a hole is left in the interrupt mapping for the RTC rathe
bhyve: Support legacy PCI interrupts on arm64
This allows us to remove various #ifdef hacks and enable building more PCI devices.
Note that a hole is left in the interrupt mapping for the RTC rather than having the two core devices straddle the PCIe interrupts. QEMU's virt machine also takes this approach.
Reviewed by: jhb MFC after: 2 weeks Obtained from: CheriBSD
show more ...
|
#
dc6a00f2 |
| 03-Apr-2024 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Use vm_raise_msi() instead of vm_lapic_msi()
No functional change intended.
Reviewed by: corvink, jhb MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.free
bhyve: Use vm_raise_msi() instead of vm_lapic_msi()
No functional change intended.
Reviewed by: corvink, jhb MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D41740
show more ...
|
#
f286f746 |
| 03-Apr-2024 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Add PCI mappings for arm64
- The extended config space and BAR ranges are listed in the FDT. - Avoid referencing I/O ports in ACPI tables. Currently the arm64 port does not support ACPI in
bhyve: Add PCI mappings for arm64
- The extended config space and BAR ranges are listed in the FDT. - Avoid referencing I/O ports in ACPI tables. Currently the arm64 port does not support ACPI in any case.
Reviewed by: corvink, jhb MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D41739
show more ...
|
#
fc98569f |
| 03-Apr-2024 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Do not compile PCI passthrough support on arm64
Some required kernel functionality is not yet implemented.
For now this means that one cannot specify host PCI register values, but that funct
bhyve: Do not compile PCI passthrough support on arm64
Some required kernel functionality is not yet implemented.
For now this means that one cannot specify host PCI register values, but that functionality is only used by amd64-specific device models for now. Note that this limitation is rather artificial; it arises only because pci_host_read_config() lives in pci_passthru.c.
Reviewed by: corvink, andrew, jhb MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D41738
show more ...
|
#
e497fe86 |
| 03-Apr-2024 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Use vm_get_highmem_base() instead of hard-coding the value
This reduces the coupling between libvmmapi (which creates the highmem segment) and bhyve, in preparation for the arm64 port.
No fu
bhyve: Use vm_get_highmem_base() instead of hard-coding the value
This reduces the coupling between libvmmapi (which creates the highmem segment) and bhyve, in preparation for the arm64 port.
No functional change intended.
Reviewed by: corvink, jhb MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40992
show more ...
|
#
4d65a7c6 |
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
usr.sbin: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
usr.sbin: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
show more ...
|
Revision tags: release/14.0.0 |
|
#
31cf78c9 |
| 04-Oct-2023 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Make most I/O port handling specific to amd64
- The qemu_fwcfg interface, as implemented, is I/O port-based, but QEMU implements an MMIO interface that we'll eventually want to port for a
bhyve: Make most I/O port handling specific to amd64
- The qemu_fwcfg interface, as implemented, is I/O port-based, but QEMU implements an MMIO interface that we'll eventually want to port for arm64. - Retain support for I/O space PCI BARs, simply treat them like MMIO BARs for most purposes, similar to what the arm64 kernel does. Such BARs are created by virtio devices.
Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40741
show more ...
|
#
55c13f6e |
| 04-Oct-2023 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Move legacy PCI interrupt handling under amd64/
Specifically, move IO-APIC, LPC and PIRQ routing code under amd64/.
Use ifdefs to conditionally compile related code in other files. In parti
bhyve: Move legacy PCI interrupt handling under amd64/
Specifically, move IO-APIC, LPC and PIRQ routing code under amd64/.
Use ifdefs to conditionally compile related code in other files. In particular, legacy PCI interrupt handling is now compiled only on amd64. This is not too invasive, but suggestions for a more modular approach would be appreciated.
I am not sure why qemu fwcfg handling is tied to LPC, and I suspect it should be decoupled. In this commit I just apply an ifdef hammer, but we will eventually want fwcfg on arm64 as well.
No functional change intended.
Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40739
show more ...
|
#
01d53c34 |
| 04-Oct-2023 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Improve pcifd function naming
read_config() and write_config() are externally visible, so give them more descriptive names. No functional change intended.
MFC after: 1 week Sponsored by: In
bhyve: Improve pcifd function naming
read_config() and write_config() are externally visible, so give them more descriptive names. No functional change intended.
MFC after: 1 week Sponsored by: Innovate UK
show more ...
|
#
1d386b48 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
b3e76948 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
0dea4f06 |
| 11-Jul-2023 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Deduplicate some code in modify_bar_registration()
No functional change intended.
Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews
bhyve: Deduplicate some code in modify_bar_registration()
No functional change intended.
Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40877
show more ...
|
#
f4841d8a |
| 28-Jun-2023 |
Mark Johnston <markj@FreeBSD.org> |
bhyve: Rename a pci_cfgrw() parameter
pci_cfgrw() may be called via a write to the extended config space, which is memory-mapped. In this case, the name "eax" is misleading. Give it a more generic
bhyve: Rename a pci_cfgrw() parameter
pci_cfgrw() may be called via a write to the extended config space, which is memory-mapped. In this case, the name "eax" is misleading. Give it a more generic name. No functional change intended.
Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40732
show more ...
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0 |
|
#
6632a0a4 |
| 16-Aug-2021 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add helper to create a bootorder
Qemu's fwcfg allows to define a bootorder. Therefore, the hypervisor has to create a fwcfg item named bootorder, which has a newline seperated list of boot en
bhyve: add helper to create a bootorder
Qemu's fwcfg allows to define a bootorder. Therefore, the hypervisor has to create a fwcfg item named bootorder, which has a newline seperated list of boot entries. Qemu's OVMF will pick up the bootorder and applies it.
Add the moment, bhyve's OVMF doesn't support a custom bootorder by qemu's fwcfg. However, in the future bhyve will gain support for qemu's OVMF. Additonally, we can port relevant parts from qemu's to bhyve's OVMF implementation.
Reviewed by: jhb, markj MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D39284
show more ...
|
#
381ef27d |
| 15-May-2023 |
Vitaliy Gusev <gusev.vitaliy@gmail.com> |
bhyve: use pci_next() to save/restore pci devices
Current snapshot implementation doesn't support multiple devices with similar type. For example, two virtio-blk or two CD-ROM-s, etc.
So the follow
bhyve: use pci_next() to save/restore pci devices
Current snapshot implementation doesn't support multiple devices with similar type. For example, two virtio-blk or two CD-ROM-s, etc.
So the following configuration cannot be restored.
bhyve \ -s 3,virtio-blk,disk.img \ -s 4,virtio-blk,disk2.img
In some cases it is restored silently, but doesn't work. In some cases it fails during restore stage.
This commit fixes that issue.
Reviewed by: corvink, rew MFC after: 1 week Sponsored by: vStack Differential Revision: https://reviews.freebsd.org/D40109
show more ...
|
#
14c80457 |
| 15-May-2023 |
Vitaliy Gusev <gusev.vitaliy@gmail.com> |
bhyve: add bus, slot and func to device name
Each device needs a unique identifier to store and restore snapshots properly. Adding the pci bsf information to the device name creates a unique identif
bhyve: add bus, slot and func to device name
Each device needs a unique identifier to store and restore snapshots properly. Adding the pci bsf information to the device name creates a unique identifier as a bsf can't be occupied twice.
Reviewed by: corvink MFC after: 1 week Sponsored by: vStack Differential Revision: https://reviews.freebsd.org/D40107
show more ...
|
#
4d846d26 |
| 10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
#
ffaed739 |
| 06-Feb-2023 |
Corvin Köhne <corvink@FreeBSD.org> |
bhyve: add helper to read PCI IDs from bhyve config
Changing the PCI IDs is valuable in some situations. The Intel GOP driver requires that some PCI IDs of the LPC bridge are aligned with the physic
bhyve: add helper to read PCI IDs from bhyve config
Changing the PCI IDs is valuable in some situations. The Intel GOP driver requires that some PCI IDs of the LPC bridge are aligned with the physical values of the host LPC bridge. Another use case are oracles virtio driver. They require different subvendor ID than the default one. For that reason, create a helper which makes it easy to read PCI IDs from bhyve config. Additionally, this helper ensures that all emulation devices are using the same config keys.
Reviewed by: jhb MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D38402
show more ...
|
#
7d9ef309 |
| 24-Mar-2023 |
John Baldwin <jhb@FreeBSD.org> |
libvmmapi: Add a struct vcpu and use it in most APIs.
This replaces the 'struct vm, int vcpuid' tuple passed to most API calls and is similar to the changes recently made in vmm(4) in the kernel.
s
libvmmapi: Add a struct vcpu and use it in most APIs.
This replaces the 'struct vm, int vcpuid' tuple passed to most API calls and is similar to the changes recently made in vmm(4) in the kernel.
struct vcpu is an opaque type managed by libvmmapi. For now it stores a pointer to the VM context and an integer id.
As an immediate effect this removes the divergence between the kernel and userland for the instruction emulation code introduced by the recent vmm(4) changes.
Since this is a major change to the vmmapi API, bump VMMAPI_VERSION to 0x200 (2.0) and the shared library major version.
While here (and since the major version is bumped), remove unused vcpu argument from vm_setup_pptdev_msi*().
Add new functions vm_suspend_all_cpus() and vm_resume_all_cpus() for use by the debug server. The underyling ioctl (which uses a vcpuid of -1) remains unchanged, but the userlevel API now uses separate functions for global CPU suspend/resume.
Reviewed by: corvink, markj Differential Revision: https://reviews.freebsd.org/D38124
show more ...
|
#
6a284cac |
| 19-Jan-2023 |
John Baldwin <jhb@FreeBSD.org> |
bhyve: Remove vmctx argument from PCI device model methods.
Most of these arguments were unused. Device models which do need access to the vmctx in one of these methods can obtain it from the pi_vm
bhyve: Remove vmctx argument from PCI device model methods.
Most of these arguments were unused. Device models which do need access to the vmctx in one of these methods can obtain it from the pi_vmctx member of the pci_devinst argument instead.
Reviewed by: corvink, markj Differential Revision: https://reviews.freebsd.org/D38096
show more ...
|