On Mon, Feb 16, 2015 at 8:35 AM, Rafał Miłecki <zajec5@xxxxxxxxx> wrote: > As one of workarounds I was thinking about mapping whole space early. > Unfortunately there are many possible registers (0xffff), few PCI > functions (0x30000), many possible PCI devices (0xf80000). It's way to > big space I guess to keep it mapped all the time. According to the code you only support dev numbers 0 and 1: if (dev >= 2 || !(bcma_pcie_read(pc, BCMA_CORE_PCI_DLLP_LSREG) & BCMA_CORE_PCI_DLLP_LSREG_LINKUP)) goto out; so it should come out to 2 << BCMA_CORE_PCI_CFG_SLOT_SHIFT (=19), a one MiB map. That doesn't seem too big to me, and should fit in one TLB slot for mips. I have no idea about arm. Jonas