Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Jul 2012 16:45:55 -0400
From:      Arnaud Lacombe <lacombar@gmail.com>
To:        Ian Lepore <freebsd@damnhippie.dyndns.org>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: Interfacing devices with multiple parents within newbus
Message-ID:  <CACqU3MUbsGBaXqc%2BGUBq8OXDsLHj1UZdtbEg0kYf0nUA-0Z7Kw@mail.gmail.com>
In-Reply-To: <1341601751.70246.7.camel@revolution.hippie.lan>
References:  <CACqU3MU6iv%2Bo26fCdL5M6Kg6XMM1uZPih5FBiBKPOD9WDx%2BNGg@mail.gmail.com> <FEAC4049-11B0-4B3D-BB7A-0946DBBFF530@bsdimp.com> <CACqU3MWTKSpVRbJracCjSLVHko8RSpXw6vpC3o3UaAyTizos3A@mail.gmail.com> <CACqU3MX_xoHQ2HbvhUdj%2BVM4Dt34jANnhGkRG_xO6DM69AFc2Q@mail.gmail.com> <1341601751.70246.7.camel@revolution.hippie.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

On Fri, Jul 6, 2012 at 3:09 PM, Ian Lepore
<freebsd@damnhippie.dyndns.org> wrote:
> On Fri, 2012-07-06 at 14:46 -0400, Arnaud Lacombe wrote:
>> Hi,
>>
>> On Fri, Jul 6, 2012 at 11:33 AM, Arnaud Lacombe <lacombar@gmail.com> wrote:
>> > That's neither correct nor robust in a couple of way:
>> >  1) you have no guarantee a device unit will always give you the same resource.
>> this raises the following question: how can a device, today, figure
>> out which parent in a given devclass would give it access to resources
>> it needs.
>>
>> Say, you have gpiobus0 provided by a superio and gpiobus1 provided by
>> the chipset and a LED on the chipset's GPIO. Now, say gpiobus0
>> attachment is conditional to some BIOS setting. How can you tell
>> gpioled(4) to attach on the chipset provided GPIO without hardcoding
>> unit number either way ?
>>
>> AFAIK, you can not.
>>
>> Even hints provided layout description is defeated. Each device in a
>> given devclass need to have a set of unique attribute to allow a child
>> to distinguish it from other potential parent in the same devclass...
>>
>>  - Arnaud
>
> Talking about a child being unable to choose the correct parent seems to
> indicate that this whole problem is turned upside-down somehow; children
> don't choose their parents.
>
actually, I think I was wrong, I thought device were attached to a
devclass, but they are truly attached to a given device. My mistake.

> Just blue-sky dreaming here on the fly... what we really have is a
> resource-management problem.  A device comes along that needs a GPIO
> resource, how does it find and use that resource?
>
> Well, we have a resource manager, could that help somehow?  Could a
> driver that provides access to GPIO somehow register its availability so
> that another driver can find and access it?  The "resource" may be a
> callable interface, it doesn't really matter, I'm just wondering if the
> current rman stuff could be leveraged to help make the connection
> between unrelated devices.   I think that implies that there would have
> to be something near the root of the hiearchy willing to be the
> owner/manager of dynamic resources.
>
AFAIR, rman is mostly there to manage memory vs. i/o mapped resources.
The more I think about it, the more FTD is the answer. The open
question now being "how to map a flexible device structure (FTD) to a
less flexible structure (Newbus)" :/

 - Arnaud



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACqU3MUbsGBaXqc%2BGUBq8OXDsLHj1UZdtbEg0kYf0nUA-0Z7Kw>