Subject: Re: ibus addresses [was Re: CVS commit: syssrc]
To: None <port-pmax@NetBSD.ORG>
From: Toru Nishimura <nisimura@itc.aist-nara.ac.jp>
List: port-pmax
Date: 11/24/1999 10:37:25
>> Modified Files:
>>
>> syssrc/sys/arch/pmax/conf: files.pmax
>> syssrc/sys/arch/pmax/ibus: ibus.c ibusvar.h
>>
>> Log Message:
>>
>> Add an `addr' locator to the `ibus' bus. This allows you to wire down
>> unit numbers on systems which have e.g. multiple `dc' devices on the
>> internal bus (like the 5100).
>
> I'm curious about what this gains. The 5100 only has a single `dc'...
>
> The autoconf output now has the addresses (which is nicer) but you also
> see a "pm ... not configured", which a 5100 can't have. Here's the old:
> [ ... ]
> and the new:
>
> ibus0 at mainbus0
> pm at ibus0 addr 0xfc00000 not configured
> dc0 at ibus0 addr 0x1c000000
> le0 at ibus0 addr 0x18000000: address 08:00:2b:25:28:fc
> le0: 32 receive buffers, 8 transmit buffers
> le0: supplying EUI64: 08:00:2b:ff:fe:25:28:fc
> sii0 at ibus0 addr 0x1a000000: target 7
> mcclock0 at ibus0 addr 0x1d000000: mc146818 or compatible
>
> Is there a way not to be verbose about devices that aren't attached?
That's the intentional. 3100 and 5100 are treated as a single entity
which happens to have different set of hardwares. On my private source
tree;
static struct ibus_attach_args kn01_devs[] = {
{ "mc146818", KV(KN01_SYS_CLOCK), C(SYS_DEV_BOGUS) },
{ "dc", KV(KN01_SYS_DZ), C(SYS_DEV_SCC0) },
{ "lance", KV(KN01_SYS_LANCE), C(SYS_DEV_LANCE) },
{ "sii", KV(KN01_SYS_SII), C(SYS_DEV_SCSI) },
{ "pm", KV(KN01_PHYS_FBUF_START), C(SYS_DEV_BOGUS) },
{ "dc", KV(0x15000000), C(SYS_DEV_OPT0) },
{ "dc", KV(0x15200000), C(SYS_DEV_OPT1) },
#ifdef notyet
/*
* XXX Ultrix configures at 0x86400400. the first 0x400 byte are
* used for NVRAM state??
*/
{ "nvram", KV(0x86400000), C(SYS_DEV_BOGUS) },
#endif
};
And dc driver will have a following structure;
dc0
lkkbd0
wskbd0
vsms0
wsmouse0
dctty0
dctty1
dc1
dctty2
dctty3
dctty4
dctty5
dc2
dctty6
dctty7
dctty8
dctty9
Tohru Nishimura