Add support for ISDN Surfer (ISDN only, for the time being).
This commit is contained in:
parent
c5d65e2d74
commit
3f25157bea
|
@ -1,7 +1,7 @@
|
||||||
/* $NetBSD: aster.c,v 1.7 2000/01/23 21:06:12 aymeric Exp $ */
|
/* $NetBSD: aster.c,v 1.8 2001/01/25 22:22:15 is Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1998 The NetBSD Foundation, Inc.
|
* Copyright (c) 1998,2001 The NetBSD Foundation, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* This code is derived from software contributed to The NetBSD Foundation
|
* This code is derived from software contributed to The NetBSD Foundation
|
||||||
|
@ -92,6 +92,9 @@ astermatch(parent, cfp, auxp)
|
||||||
if (zap->manid == 5000 && zap->prodid == 1) /* ITH ISDN Master II */
|
if (zap->manid == 5000 && zap->prodid == 1) /* ITH ISDN Master II */
|
||||||
return (1);
|
return (1);
|
||||||
|
|
||||||
|
if (zap->manid == 4626 && zap->prodid == 5 && zap->serno == 0)
|
||||||
|
return (1); /* Schoenfeld ISDN Surfer */
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,27 +111,38 @@ asterattach(parent, self, auxp)
|
||||||
astrsc = (struct aster_softc *)self;
|
astrsc = (struct aster_softc *)self;
|
||||||
zap = auxp;
|
zap = auxp;
|
||||||
|
|
||||||
|
astrsc->sc_bst.base = (u_long)zap->va + 0;
|
||||||
|
astrsc->sc_bst.absm = &amiga_bus_stride_2;
|
||||||
|
supa.supio_ipl = 2; /* could be 6. isic_supio will decide. */
|
||||||
|
|
||||||
if (zap->manid == 5001 && zap->prodid == 1) {
|
if (zap->manid == 5001 && zap->prodid == 1) {
|
||||||
cardname = "Blaster";
|
cardname = "Blaster";
|
||||||
supa.supio_name = "isic";
|
supa.supio_name = "isic31";
|
||||||
} else if (zap->manid == 2092 && zap->prodid == 64) {
|
} else if (zap->manid == 2092 && zap->prodid == 64) {
|
||||||
cardname = "Master";
|
cardname = "Master";
|
||||||
supa.supio_name = "isic";
|
supa.supio_name = "isic31";
|
||||||
} else /* if (zap->manid == 5000 && zap->prodid == 1) */ {
|
} else if (zap->manid == 5000 && zap->prodid == 1) {
|
||||||
cardname = "Master II";
|
cardname = "Master II";
|
||||||
supa.supio_name = "isicII";
|
supa.supio_name = "isic13";
|
||||||
|
} else /* if (zap->manid == 4626 && zap->prodid == 5 &&
|
||||||
|
zap->serno == 0) */{
|
||||||
|
cardname = "Surfer";
|
||||||
|
supa.supio_name = "isic1C";
|
||||||
|
|
||||||
|
((volatile u_int8_t *)zap->va)[0x00fe] = 0xff;
|
||||||
|
|
||||||
|
if (((volatile u_int8_t *)zap->va)[0x00fe] & 0x80)
|
||||||
|
supa.supio_ipl = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parent)
|
if (parent)
|
||||||
printf(": ISDN %s\n", cardname);
|
printf(": ISDN %s\n", cardname);
|
||||||
|
|
||||||
astrsc->sc_bst.base = (u_long)zap->va + 0;
|
|
||||||
astrsc->sc_bst.absm = &amiga_bus_stride_2;
|
|
||||||
|
|
||||||
supa.supio_iot = &astrsc->sc_bst;
|
supa.supio_iot = &astrsc->sc_bst;
|
||||||
|
|
||||||
supa.supio_iobase = 0;
|
supa.supio_iobase = 0;
|
||||||
supa.supio_arg = 0;
|
supa.supio_arg = 0;
|
||||||
supa.supio_ipl = 2; /* could be 6. isic_supio will decide. */
|
|
||||||
config_found(self, &supa, asterprint); /* XXX */
|
config_found(self, &supa, asterprint); /* XXX */
|
||||||
#ifdef __notyet__
|
#ifdef __notyet__
|
||||||
hyper3i_attach_subr(self, &supa, asterprint);
|
hyper3i_attach_subr(self, &supa, asterprint);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998 Ignatios Souvatzis. All rights reserved.
|
* Copyright (c) 1998,2001 Ignatios Souvatzis. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
|
@ -35,10 +35,11 @@
|
||||||
* - ISDN Blaster 5001/1
|
* - ISDN Blaster 5001/1
|
||||||
* - ISDN MasterII 5000/1
|
* - ISDN MasterII 5000/1
|
||||||
* - ISDN Master 2092/64
|
* - ISDN Master 2092/64
|
||||||
* But we attach to the supio, so just see "isic" or "isicII".
|
* - ISDN Surfer 4626/5
|
||||||
|
* But we attach to the supio, so just see "isic", "isicII", icis
|
||||||
* -----------------------------------------------------------
|
* -----------------------------------------------------------
|
||||||
*
|
*
|
||||||
* $Id: isic_supio.c,v 1.1 2001/01/21 22:23:08 is Exp $
|
* $Id: isic_supio.c,v 1.2 2001/01/25 22:22:15 is Exp $
|
||||||
*
|
*
|
||||||
* last edit-date: [Tue Jan 9 21:57:11 2001]
|
* last edit-date: [Tue Jan 9 21:57:11 2001]
|
||||||
*
|
*
|
||||||
|
@ -111,8 +112,7 @@ isic_supio_match(parent, cf, aux)
|
||||||
struct supio_attach_args *sap = aux;
|
struct supio_attach_args *sap = aux;
|
||||||
|
|
||||||
/* ARGSUSED */
|
/* ARGSUSED */
|
||||||
return (!strcmp("isic", sap->supio_name) ||
|
return (!strncmp("isic", sap->supio_name, 4));
|
||||||
!strcmp("isicII", sap->supio_name));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int isic_supio_ipl = 2;
|
int isic_supio_ipl = 2;
|
||||||
|
@ -141,32 +141,28 @@ isic_supio_attach(parent, self, aux)
|
||||||
/* create io mappings */
|
/* create io mappings */
|
||||||
MALLOC_MAPS(sc);
|
MALLOC_MAPS(sc);
|
||||||
|
|
||||||
if (!strcmp(sap->supio_name, "isic")) {
|
o1 = (sap->supio_name[4]-'0') << 7;
|
||||||
o1 = 0x300;
|
o2 = (sap->supio_name[5]-'0') << 7;
|
||||||
o2 = 0x100;
|
|
||||||
} else /* "isic-II" */ {
|
|
||||||
o1 = 0x100;
|
|
||||||
o2 = 0x300;
|
|
||||||
}
|
|
||||||
bst = sap->supio_iot;
|
bst = sap->supio_iot;
|
||||||
bus_space_map(bst, sap->supio_iobase, 0x400, 0, &h);
|
bus_space_map(bst, sap->supio_iobase, 0x1000, 0, &h);
|
||||||
|
|
||||||
/* ISAC */
|
/* ISAC */
|
||||||
sc->sc_maps[0].t = bst;
|
sc->sc_maps[0].t = bst;
|
||||||
sc->sc_maps[0].h = h;
|
sc->sc_maps[0].h = h;
|
||||||
sc->sc_maps[0].offset = o1/2;
|
sc->sc_maps[0].offset = o1;
|
||||||
sc->sc_maps[0].size = 0; /* foreign mapping, leave it alone */
|
sc->sc_maps[0].size = 0; /* foreign mapping, leave it alone */
|
||||||
|
|
||||||
/* HSCX A */
|
/* HSCX A */
|
||||||
sc->sc_maps[1].t = bst;
|
sc->sc_maps[1].t = bst;
|
||||||
sc->sc_maps[1].h = h;
|
sc->sc_maps[1].h = h;
|
||||||
sc->sc_maps[1].offset = o2/2;
|
sc->sc_maps[1].offset = o2;
|
||||||
sc->sc_maps[1].size = 0; /* foreign mapping, leave it alone */
|
sc->sc_maps[1].size = 0; /* foreign mapping, leave it alone */
|
||||||
|
|
||||||
/* HSCX B */
|
/* HSCX B */
|
||||||
sc->sc_maps[2].t = bst;
|
sc->sc_maps[2].t = bst;
|
||||||
sc->sc_maps[2].h = h;
|
sc->sc_maps[2].h = h;
|
||||||
sc->sc_maps[2].offset = (o2 + 0x80)/2;
|
sc->sc_maps[2].offset = o2 + 0x40;
|
||||||
sc->sc_maps[2].size = 0; /* foreign mapping, leave it alone */
|
sc->sc_maps[2].size = 0; /* foreign mapping, leave it alone */
|
||||||
|
|
||||||
sc->clearirq = NULL;
|
sc->clearirq = NULL;
|
||||||
|
|
Loading…
Reference in New Issue