I've been testing Genode's current compatibility with my desktop computer,
which has an AMD 9xx chipset. While the framebuffer driver works fine,
usb_drv does not.
Here's the full output:
Genode 18.02-2-g6888094f6 <local changes>
16299 MiB RAM and 63253 caps assigned to init
[init -> acpi_drv] Found MADT
[init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0
[init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15
[init -> acpi_drv] Found MCFG
[init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff
[init -> platform_drv] 0:2.0 - bridge 1:0.0
[init -> platform_drv] 0:9.0 - bridge 2:0.0
[init -> platform_drv] 0:14.4 - bridge 3:0.0
[init -> platform_drv] 0:15.0 - bridge 4:0.0
[init -> platform_drv] 0:15.3 - bridge 5:0.0
[init -> usb_drv] Could not read screen resolution in config node
[init -> usb_drv] Configured HID screen with 0x0 (multitouch=false)
[init -> usb_drv] No <storage> config node found - not starting the USB
Storage (Block) service
[init -> usb_drv] No <nic> config node found - not starting the USB Nic
(Network) service
[init -> usb_drv] No <raw> config node found - not starting external USB
service
[init -> usb_drv] Enabled UHCI (USB 1.0/1.1) support
[init -> usb_drv] Enabled OHCI (USB 1.0/1.1) support
[init -> usb_drv] Enabled EHCI (USB 2.0) support
[init -> usb_drv] Enabled XHCI (USB 3.0) support
*[init -> platform_drv] Warning: Out_of_caps during Device_component
construction*
*[init -> platform_drv] Warning: Out_of_caps during Device_component
construction*
*[ 0] sys_assign_pci: Invalid Hint (0x200)*
[init -> platform_drv] Error: usb_drv -> : assignment of PCI device 2:0.0
failed phys=0xe0200000 virt=0x80400000
[init -> usb_drv] ioremap: mapped phys 0xfe100000 (size 32768) to virt
0x20000
[init -> usb_drv] dev_info: xHCI Host Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus number 1
[init -> usb_drv] dev_info: hcc params 0x040040a5 hci version 0x100 quirks
0x00000010
[init -> platform_drv] 2:0.0 adjust IRQ as reported by ACPI: 10 -> 48
[init -> platform_drv] 2:0.0 uses MSI 64bit, vector 0x9f, address
0xfee10000, maskable
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 4 ports detected
[init -> usb_drv] dev_info: xHCI Host Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus number 2
[init -> usb_drv] dev_info: We don't know the algorithms for LPM for this
host, disabling LPM.
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 4 ports detected
[ 0] sys_assign_pci: Invalid Hint (0xb2)
[init -> platform_drv] Error: usb_drv -> : assignment of PCI device 0:16.2
failed phys=0xe00b2000 virt=0x1000
[init -> usb_drv] ioremap: mapped phys 0xfe204000 (size 256) to virt 0x17000
[init -> usb_drv] dev_info: EHCI Host Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus number 3
[init -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy
qh workaround
[init -> platform_drv] 0:16.2 adjust IRQ as reported by ACPI: 11 -> 17
[init -> platform_drv] 0:16.2 uses IRQ, vector 0x11, non-maskable
[init -> usb_drv] dev_info: irq 130, io mem 0xfe204000
[init -> usb_drv] dev_info: USB 2.0 started, EHCI 1.00
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 4 ports detected
[ 0] sys_assign_pci: Invalid Hint (0x9a)
[init -> platform_drv] Error: usb_drv -> : assignment of PCI device 0:13.2
failed phys=0xe009a000 virt=0x1000
[init -> usb_drv] ioremap: mapped phys 0xfe207000 (size 256) to virt 0x28000
[init -> usb_drv] dev_info: EHCI Host Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus number 4
[init -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy
qh workaround
[init -> platform_drv] 0:13.2 adjust IRQ as reported by ACPI: 11 -> 17
[init -> platform_drv] 0:13.2 uses IRQ, vector 0x11, non-maskable
[init -> usb_drv] dev_info: irq 131, io mem 0xfe207000
[init -> usb_drv] dev_info: USB 2.0 started, EHCI 1.00
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 5 ports detected
[ 0] sys_assign_pci: Invalid Hint (0x92)
[init -> platform_drv] Error: usb_drv -> : assignment of PCI device 0:12.2
failed phys=0xe0092000 virt=0x1000
[init -> usb_drv] ioremap: mapped phys 0xfe209000 (size 256) to virt 0x29000
[init -> usb_drv] dev_info: EHCI Host Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus number 5
[init -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy
qh workaround
[init -> platform_drv] 0:12.2 adjust IRQ as reported by ACPI: 11 -> 17
[init -> platform_drv] 0:12.2 uses IRQ, vector 0x11, non-maskable
[init -> usb_drv] dev_info: irq 132, io mem 0xfe209000
Also, I get the following message in dmesg on linux (from
drivers/usb/host/pci-quirks.c), but not from usb_drv:
QUIRK: Enable AMD PLL fix
What might be going on? Why would usb_drv cause platform_drv to run out of
CAPs, even when I assign it 2000 CAPs (instead of 800)?