diff --git a/src/libs/compat/freebsd_network/bus.cpp b/src/libs/compat/freebsd_network/bus.cpp index 0c96448391..fd696b4b9c 100644 --- a/src/libs/compat/freebsd_network/bus.cpp +++ b/src/libs/compat/freebsd_network/bus.cpp @@ -137,6 +137,10 @@ bus_alloc_mem_resource(device_t dev, struct resource *res, int regid) // TODO: check flags & PCI_address_prefetchable ? + // enable this I/O resource + if (pci_enable_io(dev, SYS_RES_MEMORY) != 0) + return -1; + void *virtualAddr; res->r_mapped_area = map_mem(&virtualAddr, addr, size, 0, @@ -153,6 +157,10 @@ bus_alloc_mem_resource(device_t dev, struct resource *res, int regid) static int bus_alloc_ioport_resource(device_t dev, struct resource *res, int regid) { + // enable this I/O resource + if (pci_enable_io(dev, SYS_RES_IOPORT) != 0) + return -1; + res->r_bustag = X86_BUS_SPACE_IO; res->r_bushandle = pci_read_config(dev, regid, 4) & PCI_address_io_mask; return 0;