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