<div dir="ltr"><div>Sure, I attach devinfo with -rv, -r and -u. <br><br>Question: I don't know how the acpi subsystem works, but on my naive thinking, the acpi subsystem scans the acpi tables and populates the entries in the device tree, setting aside the address ranges (IO and mem) for which there is no driver. The handle items in the tree (e.g. \_SB_.PCI0.LPCB.GMUX) look very similar to the ones in the acpi tables. So I thought the driver then later claims these resource using the bus_alloc_resource(). Is this true at all? <br><br></div>By the way, devinfo -r shows nexus0 as the root device, but in devinfo -u there's root0, which does not show up in devinfo -r. Is this how it should be? <br><div><br>Thanks again<br><br>Peeter<br><br>--<br><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 24, 2016 at 4:44 AM, Sepherosa Ziehau <span dir="ltr"><<a href="mailto:sepherosa@gmail.com" target="_blank">sepherosa@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Code itself looks correct, can you post the full output of devinfo -r?<br>
<br>
Thanks,<br>
sephe<br>
<div class="HOEnZb"><div class="h5"><br>
On Tue, Aug 23, 2016 at 9:23 PM, karu.pruun <<a href="mailto:karu.pruun@gmail.com">karu.pruun@gmail.com</a>> wrote:<br>
> Hello<br>
><br>
> This is a newbie question: I am trying to write a simple DragonFly kernel<br>
> module for the gmux device that is attached to the LPC bus. Probing works<br>
> fine but I am stuck with the attachment routine: I can't allocate IO ports<br>
> for the device.<br>
><br>
> The device shows up in the device tree but is not attached:<br>
><br>
> ---<br>
> # devinfo -rv | grep GMUX:<br>
><br>
> unknown pnpinfo _HID=APP000B _UID=0 at handle=\_SB_.PCI0.LPCB.GMUX<br>
> ---<br>
><br>
> I looked up acpi tables (acpidump etc), the IO resources for GMUX seem to be<br>
> there:<br>
><br>
> --- ---<br>
>     Scope (\_SB.PCI0.LPCB)<br>
>     {<br>
>         Device (GMUX)<br>
>         {<br>
>             Name (_HID, EisaId ("APP000B"))  // _HID: Hardware ID<br>
>             Name (_CID, "gmux")  // _CID: Compatible ID<br>
>             Name (_STA, 0x0B)  // _STA: Status<br>
>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource<br>
> Settings<br>
>             {<br>
>                 IO (Decode16,<br>
>                     0x0700,             // Range Minimum<br>
>                     0x07FF,             // Range Maximum<br>
>                     0x01,               // Alignment<br>
>                     0xFF,               // Length<br>
>                     )<br>
>             })<br>
> --- ---<br>
><br>
> Also, looking devinfo -rv shows that the range 0x0700 to 0x07FF has been set<br>
> aside by the kernel:<br>
><br>
> ---<br>
> # devinfo -u<br>
><br>
> . . .<br>
> I/O ports:<br>
>     . . .<br>
>     0x400 - 0x1fff (root0)<br>
>     . . .<br>
> ---<br>
><br>
> So am I right supposing that bus_alloc_resource_any should be able to claim<br>
> the range 0x700 to 0x7FF for the gmux device? At the moment, trying to<br>
> allocate IO ports with bus_alloc_resource returns NULL.<br>
><br>
> I wonder if anyone has suggestions about what has gone wrong or where to dig<br>
> further? I attach the code.<br>
><br>
> Thanks<br>
><br>
> Peeter<br>
><br>
> --<br>
><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Tomorrow Will Never Die<br>
</font></span></blockquote></div><br></div>