lkml.org 
[lkml]   [2004]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Problem with ioremap which returns NULL in 2.6 kernel
    Markus Lidel wrote:

    > Hello,
    >
    > Jeff Garzik wrote:
    >
    >>> could 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:
    >>> 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.
    >>
    >> If "size=xxxx" indicates the size you are remapping, then that's
    >
    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. I
    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...

    >
    >> probably too large an area to be remapping. Try remapping only the
    >> memory area needed, and not the entire area.
    >
    >
    > Is 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?

    we tried with half and it was ok, then we moved up a bit and found the
    maximum around 80MB I think...


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:03    [W:2.156 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site