NetBSD/sys/arch/pmax/tc/ds-tc-conf.c

140 lines
4.4 KiB
C

/* $NetBSD: ds-tc-conf.c,v 1.1 1995/08/07 07:07:47 jonathan Exp $ */
/*
* Copyright (c) 1995 Jonathan Stone
* All rights reserved.
*/
/*
* 3MIN and 3MAXPLUS turbochannel slots.
* The kmin (3MIN) and kn03 (3MAXPLUS) have the same number of slots.
* We can share one configuration-struct table and use two slot-address
* tables to handle the fact that the turbochannel slot size and base
* addresses are different on the two machines.
* (thankfully the IOASIC subslots are all the same size.)
*/
struct confargs tc3_devs[4] = {
/* name entry pri xxx */
{ "IOCTL ", 3, -1, /*0x040000*/ 0x0, },
{ NULL, 2, 2, 0x0, },
{ NULL, 1, 1, 0x0, },
{ NULL, 0, 0, 0x0, }
};
/* 3MAXPLUS slot addreseses */
static struct tc_slot_desc kn03_slot_addrs [4] = {
{ KV(KN03_PHYS_TC_0_START), }, /* slot 0 - tc option slot 0 */
{ KV(KN03_PHYS_TC_1_START), }, /* slot 1 - tc option slot 1 */
{ KV(KN03_PHYS_TC_2_START), }, /* slot 2 - tc option slot 2 */
{ KV(KN03_PHYS_TC_3_START), } /* slot 3 - IOCTL asic on CPU board */
};
/* 3MAXPLUS turbochannel autoconfiguration table */
struct tc_cpu_desc kn03_tc_desc =
{
kn03_slot_addrs, KN03_TC_NSLOTS,
tc3_devs, KN03_TC_NSLOTS, /*XXX*/
tc_ds_ioasic_intr_setup,
tc_ds_ioasic_intr_establish,
tc_ds_ioasic_intr_disestablish,
(void*)-1
};
/************************************************************************/
/* 3MIN slot addreseses */
static struct tc_slot_desc kmin_slot_addrs [4] = {
{ KV(KMIN_PHYS_TC_0_START), }, /* slot 0 - tc option slot 0 */
{ KV(KMIN_PHYS_TC_1_START), }, /* slot 1 - tc option slot 1 */
{ KV(KMIN_PHYS_TC_2_START), }, /* slot 2 - tc option slot 2 */
{ KV(KMIN_PHYS_TC_3_START), } /* slot 3 - IOCTL asic on CPU board */
};
/* 3MIN turbochannel autoconfiguratin table */
struct tc_cpu_desc kmin_tc_desc =
{
kmin_slot_addrs, KMIN_TC_NSLOTS,
tc3_devs, 7, /*XXX*/
tc_ds_ioasic_intr_setup,
tc_ds_ioasic_intr_establish,
tc_ds_ioasic_intr_disestablish,
kmin_intr
};
/************************************************************************/
/* MAXINE turbochannel slots */
struct confargs xine_devs[3] = {
{ "IOCTL ", 2, -1, 0x0, },
/*{ "PMAG-DV ", ?, ?, 0x0, },*/ /* xcfb ? */
{ NULL, 1, 1, 0x0, },
{ NULL, 0, 0, 0x0, }
};
/* MAXINE slot addreseses */
static struct tc_slot_desc xine_slot_addrs [4] = {
{ KV(XINE_PHYS_TC_0_START), }, /* slot 0 - tc option slot 0 */
{ KV(XINE_PHYS_TC_1_START), }, /* slot 1 - tc option slot 1 */
{ KV(XINE_PHYS_TC_3_START), } /* slot 2 - IOCTL asic on CPU board */
};
struct tc_cpu_desc xine_tc_desc =
{
xine_slot_addrs, XINE_TC_NSLOTS,
xine_devs, 11, /*XXX*/
tc_ds_ioasic_intr_setup,
tc_ds_ioasic_intr_establish,
tc_ds_ioasic_intr_disestablish,
xine_intr
};
/************************************************************************/
#if 0
#define TC_SCSI "PMAZ-AA "
#define TC_ETHER "PMAD-AA "
#else
#define TC_SCSI NULL
#define TC_ETHER NULL
#endif
/* 3MAX (kn02) turbochannel slots */
struct confargs kn02_devs[8] = {
/* The 3max supposedly has "KN02 " at 0xbffc0410 */
/* name entry pri xxx */
{ KN02_ASIC_NAME, 7, -1, 0x0, }, /* System CSR and subslots */
{ TC_ETHER, 6, 6, 0x0, }, /* slot 6: Ether on cpu board*/
{ TC_SCSI, 5, 5, 0x0, }, /* slot 5: SCSI on cpu board */
/*XXX*/ { NULL, 4, 0, -1, }, /* slot 3 reserved */
/*XXX*/ { NULL, 3, 0, -1, }, /* slot 3 reserved */
{ NULL, 2, 2, 0x0, }, /* slot 2 - TC option slot 2 */
{ NULL, 1, 1, 0x0, }, /* slot 1 - TC option slot 1 */
{ NULL, 0, 0, 0x0, } /* slot 0 - TC option slot 0 */
};
/* slot addreseses */
static struct tc_slot_desc kn02_slot_addrs [8] = {
{ KV(KN02_PHYS_TC_0_START), }, /* slot 0 - tc option slot 0 */
{ KV(KN02_PHYS_TC_1_START), }, /* slot 1 - tc option slot 1 */
{ KV(KN02_PHYS_TC_2_START), }, /* slot 2 - tc option slot 2 */
{ KV(KN02_PHYS_TC_3_START), }, /* slot 3 - reserved */
{ KV(KN02_PHYS_TC_4_START), }, /* slot 4 - reserved */
{ KV(KN02_PHYS_TC_5_START), }, /* slot 5 - SCSI on cpu board */
{ KV(KN02_PHYS_TC_6_START), }, /* slot 6 - Ether on cpu board */
{ KV(KN02_PHYS_TC_7_START), } /* slot 7 - system devices */
};
struct tc_cpu_desc kn02_tc_desc =
{
kn02_slot_addrs, KN02_TC_NSLOTS,
kn02_devs, 8, /*XXX*/
tc_ds_ioasic_intr_setup,
tc_ds_ioasic_intr_establish,
tc_ds_ioasic_intr_disestablish,
/*kn02_intr*/ (void*) -1
};