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 17:03:58 -0800 (PST)
    To: "M. Warner Losh" <imp@bsdimp.com>
    
    

    On Mon, 26 Jan 2004, M. Warner Losh wrote:
    > In message: <20040126140100.T29680@root.org>
    > Nate Lawson <nate@root.org> writes:
    > : I have a driver that knows the IO port it wants. It's not set up by a
    > : parent bus, so I can't use bus_set_resource(). This call returns NULL.
    > : Any idea how to debug why newbus is rejecting this request? The io port
    > : is not in use and the rid is unique.
    > :
    > : bus_alloc_resource(dev, SYS_RES_IOPORT, rid, 0x101c, 0x101c, 1,
    > : RF_ACTIVE);
    >
    > Ummm, you can use bus_set_resource() in the driver to do this (I've
    > done it before). bus_set_resource() should return 0 to indicate
    > success. bus_alloc_resource should then succeed. There may be one
    > other step to do as well to make this work, but I'm not sure if it is
    > an internal convention or actually required. The pci bus code does a
    > resource_list_add for each of the resources the child uses, but I
    > think that's an internal thing to the pci bus (that other busses do
    > also).

    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.

    -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