How to get a device_t

Poul-Henning Kamp phk at phk.freebsd.dk
Wed Aug 6 03:45:52 PDT 2003


In message <20030806104001.GD32228 at cicely12.cicely.de>, Bernd Walter writes:
>On Wed, Aug 06, 2003 at 12:18:28PM +0200, Poul-Henning Kamp wrote:
>> In message <20030806101148.GC32228 at cicely12.cicely.de>, Bernd Walter writes:
>> >I need to add I2C support for a Elan520 based soekris system.
>> >The system has the required GPIO pins and there is the iicbb driver
>> >to handle generic bitbang code - just needing a simple layer driver to
>> >enable, disable and read pins.
>> >But unlike normal isa/pci hardware probing the existence of the GPIO
>> >line is a bit difficult.
>> >The current elan-mmcr.c gets started from i386/pci/pci_bus.c at
>> >host bridge probing, because that's seems to be the only place to
>> >safely detect this special CPU.
>> 
>> That's my doing, based on my reading of the datasheet from AMD.
>> 
>> It would be better if we could detect the Elan in the normal CPU
>> identification stuff, but I couldn't seem to find a reliable way.
>
>I could reread the datasheet, but don't give it much hope if you
>hadn't find anything usefull.
>
>> >>From the logicaly standpoint the extensions had to be attached to
>> >nexus, but nowhere is the current code path there is a handle for
>> >nexus or any other device_t.
>> 
>> In fact what you may want to do is hang the entire MMCR off the nexus
>> as a bus, and hang the various drivers off that bus.
>
>What needs to be in *_probe() to conditionalize on elan existence?

Well, my idea was to hang the mmcr bus on nexus when we find out it
is an elan.

It may be that you are not allowed to attach a bus to the nexus when
we find out it is an elan in the host/pci bridge probe, but then I guess
you could just hang it off that instead.

Pressumably some newbus magic will then probe that bus.  If its not
an elan, there is no mmcr bus and nothing will get probed.

I'm not the worlds greatest newbus specialist, so check this concept
with somebody who know what they are talking about before you do it.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.


More information about the freebsd-hackers mailing list