RE: ASMedia USB controller 3.1 cannot be masked by bhyve ?

From: Corvin Köhne <C.Koehne_at_beckhoff.com>
Date: Tue, 14 Dec 2021 08:56:03 UTC
Hi Mario,

I'm not sure if the ppt driver supports PCI bridges. However as far as I know, bhyve doesn’t support PCI bridges.
So, you wouldn't be able to pass them to bhyve. Try to pass all non bridge devices to your bhyve guest.


Best regards
Corvin

Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
Registered office: Verl, Germany | Register court: Guetersloh HRA 7075


-----Original Message-----
From: owner-freebsd-virtualization@freebsd.org <owner-freebsd-virtualization@freebsd.org> On Behalf Of Mario Marietto
Sent: Sunday, December 12, 2021 12:33 AM
To: FreeBSD virtualization <freebsd-virtualization@freebsd.org>
Subject: ASMedia USB controller 3.1 cannot be masked by bhyve ?

CAUTION: External Email!!
Hello to everyone.


I've bought a new USB 3.1 controller from the company "ASMedia Technology
Inc." ,this model :


https://nospamproxywebp.beckhoff.com/enqsig/link?id=BCAAAABGd7m3lfMOLOIhx3uNR_1Qav4Ffx8-jQB0torD82ts_JUAAAAs60TgmkkhzHLysw3JYw2vj4uqa0LBJSY_ZAlJ4FCkjufTtiAD5xitcNuGisk6Wh0Lp55zswHeJxl7qAIMb1vgz0GI0A_08ww_i4kD2cZDroKF9D00Rq7xH8bhPotFekEK6lT9sw-ZTFimGk5zCRUP98_IbwAszRftnB95ryXtp22QCqYnIxArEf9_4DVTQKbv87n8Lw2


and I tried to mask it with bhyve because I want to pass thru it inside a
virtual machine. This is how I have assigned the addresses to bhyve inside
the file /boot/loader.conf :


/boot/loader.conf

pptdevs="1/0/0 2/0/0 2/2/0 2/6/0 2/14/0 3/0/0 4/0/0 5/0/0 6/0/0 7/0/0
7/0/1 7/0/2 7/0/3"


unfortunately hasn't been assigned any ppt device to this controller. All I
seem to see is PCI-PCI bridges. No interfaces under pciconf. Is there a
workaround for this ? thanks.

# pciconf -lv

hostb0@pci0:0:0:0:      class=0x060000 rev=0x0d hdr=0x00 vendor=0x8086
device=0x3e30 subvendor=0x1458 subdevice=0x5000
vendor     = 'Intel Corporation'
device     = '8th/9th Gen Core 8-core Desktop Processor Host
Bridge/DRAM Registers [Coffee Lake S]'
class      = bridge
subclass   = HOST-PCI

pcib1@pci0:0:1:0:       class=0x060400 rev=0x0d hdr=0x01 vendor=0x8086
device=0x1901 subvendor=0x1458 subdevice=0x5000
vendor     = 'Intel Corporation'
device     = '6th-10th Gen Core Processor PCIe Controller (x16)'
class      = bridge
subclass   = PCI-PCI

pcib7@pci0:0:1:1:       class=0x060400 rev=0x0d hdr=0x01 vendor=0x8086
device=0x1905 subvendor=0x1458 subdevice=0x5000
vendor     = 'Intel Corporation'
device     = 'Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe
Controller (x8)'
class      = bridge
subclass   = PCI-PCI

vgapci0@pci0:0:2:0:     class=0x030000 rev=0x02 hdr=0x00 vendor=0x8086
device=0x3e98 subvendor=0x1458 subdevice=0xd000
vendor     = 'Intel Corporation'
device     = 'CoffeeLake-S GT2 [UHD Graphics 630]'
class      = display
subclass   = VGA

none0@pci0:0:18:0:      class=0x118000 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa379 subvendor=0x1458 subdevice=0x8888
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH Thermal Controller'
class      = dasp

xhci0@pci0:0:20:0:      class=0x0c0330 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa36d subvendor=0x1458 subdevice=0x5007
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH USB 3.1 xHCI Host Controller'
class      = serial bus
subclass   = USB

none1@pci0:0:20:2:      class=0x050000 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa36f subvendor=0x8086 subdevice=0x7270
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH Shared SRAM'
class      = memory
subclass   = RAM

none2@pci0:0:22:0:      class=0x078000 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa360 subvendor=0x1458 subdevice=0x1c3a
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH HECI Controller'
class      = simple comms

ahci0@pci0:0:23:0:      class=0x010601 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa352 subvendor=0x1458 subdevice=0xb005
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH SATA AHCI Controller'
class      = mass storage
subclass   = SATA

pcib8@pci0:0:27:0:      class=0x060400 rev=0xf0 hdr=0x01 vendor=0x8086
device=0xa340 subvendor=0x1458 subdevice=0x5001
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH PCI Express Root Port'
class      = bridge
subclass   = PCI-PCI

pcib9@pci0:0:28:0:      class=0x060400 rev=0xf0 hdr=0x01 vendor=0x8086
device=0xa338 subvendor=0x1458 subdevice=0x5001
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH PCI Express Root Port'
class      = bridge
subclass   = PCI-PCI

pcib10@pci0:0:28:5:     class=0x060400 rev=0xf0 hdr=0x01 vendor=0x8086
device=0xa33d subvendor=0x1458 subdevice=0x5001
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH PCI Express Root Port'
class      = bridge
subclass   = PCI-PCI

pcib11@pci0:0:29:0:     class=0x060400 rev=0xf0 hdr=0x01 vendor=0x8086
device=0xa330 subvendor=0x1458 subdevice=0x5001
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH PCI Express Root Port'
class      = bridge
subclass   = PCI-PCI

isab0@pci0:0:31:0:      class=0x060100 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa305 subvendor=0x1458 subdevice=0x5001
vendor     = 'Intel Corporation'
device     = 'Z390 Chipset LPC/eSPI Controller'
class      = bridge
subclass   = PCI-ISA

hdac0@pci0:0:31:3:      class=0x040300 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa348 subvendor=0x1458 subdevice=0xa0c3
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH cAVS'
class      = multimedia
subclass   = HDA

ichsmb0@pci0:0:31:4:    class=0x0c0500 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa323 subvendor=0x1458 subdevice=0x5001
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH SMBus Controller'
class      = serial bus
subclass   = SMBus

none3@pci0:0:31:5:      class=0x0c8000 rev=0x10 hdr=0x00 vendor=0x8086
device=0xa324 subvendor=0x8086 subdevice=0x7270
vendor     = 'Intel Corporation'
device     = 'Cannon Lake PCH SPI Controller'
class      = serial bus

em0@pci0:0:31:6:        class=0x020000 rev=0x10 hdr=0x00 vendor=0x8086
device=0x15bc subvendor=0x1458 subdevice=0xe000
vendor     = 'Intel Corporation'
device     = 'Ethernet Connection (7) I219-V'
class      = network
subclass   = ethernet

pcib2@pci0:1:0:0:       class=0x060400 rev=0x01 hdr=0x01 vendor=0x1b21
device=0x1806 subvendor=0x0000 subdevice=0x0000
vendor     = 'ASMedia Technology Inc.'
class      = bridge
subclass   = PCI-PCI

pcib3@pci0:2:0:0:       class=0x060400 rev=0x01 hdr=0x01 vendor=0x1b21
device=0x1806 subvendor=0x0000 subdevice=0x0000
vendor     = 'ASMedia Technology Inc.'
class      = bridge
subclass   = PCI-PCI

pcib4@pci0:2:2:0:       class=0x060400 rev=0x01 hdr=0x01 vendor=0x1b21
device=0x1806 subvendor=0x0000 subdevice=0x0000
vendor     = 'ASMedia Technology Inc.'
class      = bridge
subclass   = PCI-PCI

pcib5@pci0:2:6:0:       class=0x060400 rev=0x01 hdr=0x01 vendor=0x1b21
device=0x1806 subvendor=0x0000 subdevice=0x0000
vendor     = 'ASMedia Technology Inc.'
class      = bridge
subclass   = PCI-PCI

pcib6@pci0:2:14:0:      class=0x060400 rev=0x01 hdr=0x01 vendor=0x1b21
device=0x1806 subvendor=0x0000 subdevice=0x0000
vendor     = 'ASMedia Technology Inc.'
class      = bridge
subclass   = PCI-PCI

ppt0@pci0:3:0:0:        class=0x0c0330 rev=0x02 hdr=0x00 vendor=0x1912
device=0x0015 subvendor=0xffff subdevice=0xffff
vendor     = 'Renesas Technology Corp.'
device     = 'uPD720202 USB 3.0 Host Controller'
class      = serial bus
subclass   = USB

ppt1@pci0:4:0:0:        class=0x0c0330 rev=0x02 hdr=0x00 vendor=0x1912
device=0x0015 subvendor=0xffff subdevice=0xffff
vendor     = 'Renesas Technology Corp.'
device     = 'uPD720202 USB 3.0 Host Controller'
class      = serial bus
subclass   = USB

ppt2@pci0:5:0:0:        class=0x0c0330 rev=0x02 hdr=0x00 vendor=0x1912
device=0x0015 subvendor=0xffff subdevice=0xffff
vendor     = 'Renesas Technology Corp.'
device     = 'uPD720202 USB 3.0 Host Controller'
class      = serial bus
subclass   = USB

ppt3@pci0:6:0:0:        class=0x0c0330 rev=0x02 hdr=0x00 vendor=0x1912
device=0x0015 subvendor=0xffff subdevice=0xffff
vendor     = 'Renesas Technology Corp.'
device     = 'uPD720202 USB 3.0 Host Controller'
class      = serial bus
subclass   = USB

ppt4@pci0:7:0:0:        class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de
device=0x1e04 subvendor=0x19da subdevice=0x2503
vendor     = 'NVIDIA Corporation'
device     = 'TU102 [GeForce RTX 2080 Ti]'
class      = display
subclass   = VGA

ppt5@pci0:7:0:1:        class=0x040300 rev=0xa1 hdr=0x00 vendor=0x10de
device=0x10f7 subvendor=0x19da subdevice=0x2503
vendor     = 'NVIDIA Corporation'
device     = 'TU102 High Definition Audio Controller'
class      = multimedia
subclass   = HDA

ppt6@pci0:7:0:2:        class=0x0c0330 rev=0xa1 hdr=0x00 vendor=0x10de
device=0x1ad6 subvendor=0x19da subdevice=0x2503
vendor     = 'NVIDIA Corporation'
device     = 'TU102 USB 3.1 Host Controller'
class      = serial bus
subclass   = USB

ppt7@pci0:7:0:3:        class=0x0c8000 rev=0xa1 hdr=0x00 vendor=0x10de
device=0x1ad7 subvendor=0x19da subdevice=0x2503
vendor     = 'NVIDIA Corporation'
device     = 'TU102 USB Type-C UCSI Controller'
class      = serial bus

nvme0@pci0:8:0:0:       class=0x010802 rev=0x03 hdr=0x00 vendor=0xc0a9
device=0x5403 subvendor=0xc0a9 subdevice=0x2100
vendor     = 'Micron/Crucial Technology'
class      = mass storage
subclass   = NVMxhci1@pci0:10:0:0:      class=0x0c0330 rev=0x03
hdr=0x00 vendor=0x1912 device=0x0014 subvendor=0x1912 subdevice=0x0015
vendor     = 'Renesas Technology Corp.'
device     = 'uPD720201 USB 3.0 Host Controller'
class      = serial bus
subclass   = USB

# grep usbus /var/run/dmesg.boot

usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
usbus1 on xhci1
usbus1: 5.0Gbps Super Speed USB v3.0
ugen0.1: <0x8086 XHCI root HUB> at usbus0
ugen1.1: <0x1912 XHCI root HUB> at usbus1
uhub0 on usbus0
uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
uhub1 on usbus1
uhub1: <0x1912 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus1
Root mount waiting for: usbus0 CAM usbus1
Root mount waiting for: usbus0 usbus1
ugen0.2: <VIA Labs, Inc. USB2.0 Hub> at usbus0
uhub2: <VIA Labs, Inc. USB2.0 Hub, class 9/0, rev 2.10/90.14, addr 1> on usbus0
ugen1.2: <Western Digital Elements 25A3> at usbus1
umass0: <Western Digital Elements 25A3, class 0/0, rev 3.10/10.21,
addr 1> on usbus1
ugen1.3: <Apple, Inc. Keyboard Hub> at usbus1
uhub3: <Apple, Inc. Keyboard Hub, class 9/0, rev 2.00/96.15, addr 2> on usbus1
ugen0.3: <VIA Labs, Inc. USB2.0 Hub> at usbus0
uhub4: <VIA Labs, Inc. USB2.0 Hub, class 9/0, rev 2.10/90.14, addr 2> on usbus0
Root mount waiting for: usbus0 usbus1
ugen1.4: <Apple Inc. Apple Keyboard> at usbus1
ukbd0: <Apple Inc. Apple Keyboard, class 0/0, rev 2.00/0.74, addr 3> on usbus1
Root mount waiting for: usbus0 usbus1
ugen0.4: <C-Media Electronics Inc. USB Audio Device> at usbus0
ugen1.5: <Logitech Wireless Receiver> at usbus1
ugen0.5: <vendor 0x05e3 USB2.0 Hub> at usbus0
uhub5: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/85.36, addr 4> on usbus0
Root mount waiting for: usbus0
ugen0.6: <ITE Tech. Inc. ITE Device(8595)> at usbus0
ukbd1: <ITE Tech. Inc. ITE Device(8595), class 0/0, rev 2.00/0.03,
addr 5> on usbus0
Root mount waiting for: usbus0
ugen0.7: <vendor 0x05e3 USB2.0 Hub> at usbus0
uhub6: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/85.36, addr 6> on usbus0
Root mount waiting for: usbus0
ugen0.8: <vendor 0x04b3 USB Optical Mouse> at usbus0
Root mount waiting for: usbus0
ugen0.9: <SEM HCT Keyboard> at usbus0
ukbd2: <SEM HCT Keyboard, class 0/0, rev 1.10/1.10, addr 8> on usbus0
Root mount waiting for: usbus0
ugen0.10: <VIA Labs, Inc. USB3.0 Hub> at usbus0
uhub7: <VIA Labs, Inc. USB3.0 Hub, class 9/0, rev 3.00/90.15, addr 9> on usbus0
Root mount waiting for: usbus0
ugen0.11: <VIA Labs, Inc. USB3.0 Hub> at usbus0
uhub8: <VIA Labs, Inc. USB3.0 Hub, class 9/0, rev 3.00/90.15, addr 10> on usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
ugen0.12: <TOSHIBA External USB 3.0> at usbus0
umass1: <TOSHIBA External USB 3.0, class 0/0, rev 3.00/1.00, addr 11> on usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
ugen0.13: <TOSHIBA External USB 3.0> at usbus0
umass2: <TOSHIBA External USB 3.0, class 0/0, rev 3.00/1.00, addr 12> on usbus0
Root mount waiting for: usbus0
ugen0.14: <Seagate M3 Portable> at usbus0
umass3: <Seagate M3 Portable, class 0/0, rev 3.00/7.08, addr 13> on usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
ugen0.15: <HGST G-DRIVE USB> at usbus0
umass4: <HGST G-DRIVE USB, class 0/0, rev 3.00/26.02, addr 14> on usbus0
Root mount waiting for: usbus0
ugen0.16: <GODO USB3.0 External HDD> at usbus0
umass5: <GODO USB3.0 External HDD, class 0/0, rev 3.00/1.00, addr 15> on usbus0
uhid1: <C-Media Electronics Inc. USB Audio Device, class 0/0, rev
1.10/1.00, addr 3> on usbus0
uhid0: <Apple Inc. Apple Keyboard, class 0/0, rev 2.00/0.74, addr 3> on usbus1
uhid2: <SEM HCT Keyboard, class 0/0, rev 1.10/1.10, addr 8> on usbus0
ums0: <vendor 0x04b3 USB Optical Mouse, class 0/0, rev 2.00/2.00, addr
7> on usbus0
ums1: <Logitech Wireless Receiver, class 0/0, rev 1.10/3.02, addr 4> on usbus1
uaudio0: <C-Media Electronics Inc. USB Audio Device, class 0/0, rev
1.10/1.00, addr 3> on usbus0

# usbconfig

gen0.1: <0x8086 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <0x1912 XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=SAVE (0mA)
ugen0.2: <VIA Labs, Inc. USB2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
ugen1.3: <Apple, Inc. Keyboard Hub> at usbus1, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (300mA)
ugen0.3: <VIA Labs, Inc. USB2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (0mA)
ugen1.4: <Apple Inc. Apple Keyboard> at usbus1, cfg=0 md=HOST spd=LOW
(1.5Mbps) pwr=ON (20mA)
ugen0.4: <C-Media Electronics Inc. USB Audio Device> at usbus0, cfg=0
md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen1.5: <Logitech Wireless Receiver> at usbus1, cfg=0 md=HOST
spd=FULL (12Mbps) pwr=ON (50mA)
ugen0.5: <vendor 0x05e3 USB2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (100mA)
ugen0.6: <ITE Tech. Inc. ITE Device(8595)> at usbus0, cfg=0 md=HOST
spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.7: <vendor 0x05e3 USB2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=SAVE (100mA)
ugen0.8: <vendor 0x04b3 USB Optical Mouse> at usbus0, cfg=0 md=HOST
spd=LOW (1.5Mbps) pwr=ON (100mA)
ugen0.9: <SEM HCT Keyboard> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps)
pwr=ON (98mA)
ugen0.10: <VIA Labs, Inc. USB3.0 Hub> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.11: <VIA Labs, Inc. USB3.0 Hub> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.12: <TOSHIBA External USB 3.0> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (224mA)
ugen0.13: <TOSHIBA External USB 3.0> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (0mA)
ugen0.14: <Seagate M3 Portable> at usbus0, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=ON (224mA)
ugen0.15: <HGST G-DRIVE USB> at usbus0, cfg=0 md=HOST spd=SUPER
(5.0Gbps) pwr=ON (2mA)
ugen0.16: <GODO USB3.0 External HDD> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (0mA)
ugen1.2: <Western Digital Elements 25A3> at usbus1, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (2mA)


--
Mario.