I saw the same problem on a PCI card with a 128MB BAR. it is triggered on an Tyan opteron mobo, while on a old Dell P4 mobo it is ok. Icould someone help me with a ioremap problem. If there are two controllers plugged in, the ioremap request for the first controller is successfull, but the second returns NULL. Here is the output of the driver:If "size=xxxx" indicates the size you are remapping, then that's
i2o: Checking for PCI I2O controllers...
i2o: I2O controller on bus 0 at 72.
i2o: PCI I2O controller at 0xD0000000 size=134217728
I2O: MTRR workaround for Intel i960 processor
i2o/iop0: Installed at IRQ17
i2o: I2O controller on bus 0 at 96.
i2o: PCI I2O controller at 0xD8000000 size=134217728
i2o: Unable to map controller.
followed a bit the source code for ioremap and found two places in which it can fail,
area = get_vm_area(size, VM_IOREMAP);
if (!area)
return NULL;
addr = area->addr;
if (remap_area_pages(VMALLOC_VMADDR(addr), phys_addr, size, flags)) {
vfree(addr);
return NULL;
}
I had not time to add debug printk and recompila the kernel to check which one is faulty...
The strange thing is that the BARs seems to be laid out correctly, so it does not look like a bios bug...
we tried with half and it was ok, then we moved up a bit and found the maximum around 80MB I think...probably too large an area to be remapping. Try remapping only theIs there a way, to increase the size, which could be remapped, or is there a way, to find out what is the maximum size which could be remapped?
memory area needed, and not the entire area.