2012/7/11 Rafał Miłecki <zaj...@gmail.com>: > My main bcma bus has 2 PCIe slots with 2 802.11 cards. The problem is > that only one card can be registered at the time. Function responsible > for registering PCI controller is: > void __devinit bcma_core_pci_hostmode_init(struct bcma_drv_pci *pc) > > The problem is that bcma uses the same IO resource for both controllers: > pc_host->io_resource.name = "BCMA PCIcore external I/O", > pc_host->io_resource.start = 0x100; > pc_host->io_resource.end = 0x7FF; > pc_host->io_resource.flags = IORESOURCE_IO | IORESOURCE_PCI_FIXED; > > My root io_resource is 0x0000 to 0xFFFF but kernel doesn't allow to > register two controllers with overlapping IO resource (0x100 to > 0x7FF). When bcma calls register_pci_controller, it fails at: > if (request_resource(&ioport_resource, hose->io_resource) < 0) > for the second controller. > > Any idea how to find out, what IO resource we should set for second > controller?
I've hacked bcma to set (some random "start", just over 0x7FF): pc_host->io_resource.start = 0x850; pc_host->io_resource.end = 0xF4F; for second PCIe controller. Card connected to that controller was successfully detected and initialized. Hauke: how did you find out that pc_host->io_resource.start = 0x100; pc_host->io_resource.end = 0x7FF; ? -- Rafał _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel