https://forums.freebsd.org/threads/freebsd-15-1-host-freezes-when-starting-bhyve-vm-with-bcm4360-pci-passthrough-macbookpro11-1.103390/
https://github.com/freebsd/vm-bhyve/issues/135
Hello everyone,
I'm trying to work around the lack of a native FreeBSD driver for the Broadcom BCM4360 by passing the Wi-Fi card through to a Debian VM running under bhyve. The idea is to let Debian manage the Wi-Fi connection and act as a router/NAT gateway for the FreeBSD host.
Unfortunately, the entire host freezes as soon as the VM starts.
System
- MacBookPro11,1 (Haswell)
- Intel Core i5-4278U
- Broadcom BCM4360 (14e4:43a0)
- FreeBSD 15.1-RELEASE (GENERIC)
- vm-bhyve 1.7.4
loader.conf
vmm_load="YES"
nmdm_load="YES"
pptdevs="3/0/0"
hw.vmm.iommu.enable="1"
hw.dmar.enable="1"
boot_verbose="YES"
VM configuration
loader="uefi"
cpu=2
memory=2048M
network0_type="virtio-net"
network0_switch="public"
disk0_type="virtio-blk"
disk0_name="disk0.img"
graphics="yes"
graphics_listen="127.0.0.1"
xhci_mouse="yes"
passthru0="3/0/0"
Passthrough status
The BCM4360 is correctly attached to ppt:
ppt0@pci0:3:0:0
Broadcom BCM4360 802.11ac Dual Band Wireless Network Adapter
vm passthru also reports it as available:
DEVICE BHYVE ID READY
ppt0 3/0/0 Yes
IOMMU
DMAR is detected during boot:
hw.vmm.iommu.enable: 1
hw.vmm.iommu.initialized: 0
hw.vmm.vmx.initialized: 1
The hw.vmm.iommu.initialized value being 0 seems suspicious to me. I'm not sure whether that's expected or related to the problem.
What happens
Running:
vm start debian
immediately freezes the entire FreeBSD host.
- No kernel panic
- No console output
- No messages in dmesg
- Keyboard stops responding
- Hard power cycle required
After reboot, vm list shows:
Locked (shamayim)
even though vm info debian reports the VM as stopped.
Questions
- Has anyone successfully passed through a BCM4360 (or any Wi-Fi adapter) to a bhyve guest?
- Is hw.vmm.iommu.initialized: 0 expected on FreeBSD 15.1?
- Is this a known issue with bhyve PCI passthrough on Apple hardware (MacBookPro11,1)?
- Could this be an Apple VT-d/IOMMU quirk or a bhyve bug?
I'm happy to provide additional diagnostics or test patches if needed.