Re: newbus ioport usage

From: Nate Lawson (nate_at_root.org)
Date: 01/27/04

  • Next message: M. Warner Losh: "Re: newbus ioport usage"
    Date: Mon, 26 Jan 2004 19:22:30 -0800 (PST)
    To: "M. Warner Losh" <imp@bsdimp.com>
    
    

    On Mon, 26 Jan 2004, M. Warner Losh wrote:
    > In message: <20040126165523.W30461@root.org>
    > Nate Lawson <nate@root.org> writes:
    > : Ok, I'm doing the set/alloc and it works. However, one weird thing. If I
    > : allocate all ports at boot time, it succeeds. My driver goes through
    > : multiple release/allocate cycles and it all works as expected. However if
    > : I boot and attach to only one of the registers, subsequent attempts to
    > : attach the second one fail. The resources are 2 IO ports, 0x101c and
    > : 0x101d. Both are 1 byte.
    >
    > Deos devinfo -r show any cause for the problem? Maybe you aren't
    > releasing them properly? Also, why not allocate them as a block of 2?

    Ok, I've found what's going on. Apparently my acpi_sysresource0
    pseudo-device is claiming all resources in its _CRS method. If I don't
    boot with 0x101c and 0x101d attached, it attaches to 0x1010-0x109d. But
    if I boot attaching them, it reserves less of the range.

        acpi_cpu0
            I/O ports:
                0x101c
                0x101d

        acpi_sysresource0
            I/O ports:
                0x10-0x1f
                0x24-0x25
                0x28-0x29
                0x2c-0x2d
                0x2e-0x2f
                0x30-0x31
                0x34-0x35
                0x38-0x39
                0x3c-0x3d
                0x50-0x53
                0x72-0x77
                0x90-0x9f
                0xa4-0xa5
                0xa8-0xa9
                0xac-0xad
                0xb0-0xb5
                0xb8-0xb9
                0xbc-0xbd
                0x101e-0x109d
                0x1180-0x11bf
                0x15e0-0x15ef
                0x1600-0x167f

    I'm not sure of a way around this. All ASL I've seen keeps these
    registers contiguous so I could whack out a block of 8 of them, although
    that doesn't seem correct. Perhaps acpi_cpu should be able to override
    the acpi_sysresource0 allocations, maybe by asking it for the resource if
    bus_resource_alloc returns NULL. Thoughts?

    -Nate
    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"


  • Next message: M. Warner Losh: "Re: newbus ioport usage"

    Relevant Pages

    • Re: newbus ioport usage
      ... : On Mon, 26 Jan 2004, M. Warner Losh wrote: ... :>: allocate all ports at boot time, ... Have acpi bus own the resources that acpi_sysresource0 uses. ...
      (freebsd-arch)
    • Re: [1/2] [NET] link_watch: Move link watch list into net_device
      ... network subsystem as it manages the carrier status. ... makes sense to allocate some memory for it in net_device rather ... since its that loop which seems to be ... Five minutes after boot is when jiffies wraps. ...
      (Linux-Kernel)
    • Re: Allocating kernel memory
      ... >> approach of simply reserving a large amount of memory to my driver at ... >> boot time and handle the management of it myself completely. ... > to allocate high memory pages and map them into kernel ... Linux chooses to map all of its segments the same ...
      (comp.os.linux.development.system)
    • Re: FreeBSD 8.0 Beta2 / ALC driver crashbase
      ... when I boot the installer media CD, ... alc0: cannot allocate memory resources). ... instruction pointer = 0x20:0xffffffff0024c6e8 ...
      (freebsd-current)
    • Re: FreeBSD 8.0 Beta2 / ALC driver crashbase
      ... when I boot the installer media CD, ... alc0: cannot allocate memory resources). ... instruction pointer = 0x20:0xffffffff0024c6e8 ...
      (freebsd-current)