summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r--sys/arch/hppa/conf/GECKO12
-rw-r--r--sys/arch/hppa/conf/SHEPHERD_PIE27
-rw-r--r--sys/arch/hppa/conf/files.hppa6
-rw-r--r--sys/arch/hppa/gsc/gscbus.c7
-rw-r--r--sys/arch/hppa/gsc/gscbusvar.h3
-rw-r--r--sys/arch/hppa/hppa/mainbus.c17
-rw-r--r--sys/arch/hppa/include/autoconf.h6
7 files changed, 48 insertions, 30 deletions
diff --git a/sys/arch/hppa/conf/GECKO b/sys/arch/hppa/conf/GECKO
index a279660eacf..bf1f04697bf 100644
--- a/sys/arch/hppa/conf/GECKO
+++ b/sys/arch/hppa/conf/GECKO
@@ -1,4 +1,4 @@
-# $OpenBSD: GECKO,v 1.9 2001/11/29 17:31:38 mickey Exp $
+# $OpenBSD: GECKO,v 1.10 2001/12/02 04:03:53 mickey Exp $
#
# HP 9000/712/{60,80,80i,100} boxens
#
@@ -18,22 +18,22 @@ option HP7300LC_CPU
config bsd swap generic
-lasi0 at mainbus0 irq 28 # LASI host adapter (LSI ???)
-#lasi1 at mainbus0 irq ? # LASI host adapter in the GIO slot
+lasi0 at mainbus0 offset 0x100000 irq 28 # LASI host adapter (LSI ???)
+#lasi1 at mainbus0 offset 0x500000 irq ? # LASI host adapter in the GIO
#wax0 at mainbus0 irq 27? # WAX ASIC in the GIO slot
sti0 at mainbus0 # onboard HCRX-8 graphics
#sti1 at mainbus0 # GIO slot HCRX-8 graphics
# internal I/O space
gsc0 at lasi0
-#gsc1 at wax0
-#gsc2 at lasi1
+gsc1 at lasi1
+#gsc2 at wax0
com0 at gsc0 irq 5 # serial port
#com1 at gsc1 irq 6? # serial port
lpt0 at gsc0 irq 7 # both com0 and lpt0 are on LASI
ie0 at gsc0 irq 8 # 82C596 ether
#ie1 at gsc1 irq 10? # 82C596 ether
-#tms0 at gsc1 irq ? # TMS380C26 TR/9000
+#tms0 at gsc2 irq ? # TMS380C26 TR/9000
siop0 at gsc0 irq 9 # NCR 53C710
scsibus0 at siop?
#harmony0 at gsc0 irq 13 # Audio Type 2 (CS4215)
diff --git a/sys/arch/hppa/conf/SHEPHERD_PIE b/sys/arch/hppa/conf/SHEPHERD_PIE
index 3906bdb3967..b77a1e85f7c 100644
--- a/sys/arch/hppa/conf/SHEPHERD_PIE
+++ b/sys/arch/hppa/conf/SHEPHERD_PIE
@@ -1,4 +1,4 @@
-# $OpenBSD: SHEPHERD_PIE,v 1.13 2001/10/10 23:43:42 millert Exp $
+# $OpenBSD: SHEPHERD_PIE,v 1.14 2001/12/02 04:03:53 mickey Exp $
#
# Diskless kernel config
#
@@ -68,7 +68,8 @@ pseudo-device rd 2 # RAM disk device
option FPEMUL
option USELEDS # blink 'em
-lasi* at mainbus0 irq 28 # LASI host adapter (LSI PN???)
+lasi0 at mainbus0 offset 0x100000 irq 28 # LASI host adapter (LSI PN???)
+lasi1 at mainbus0 offset 0x500000 # GIO card
asp* at mainbus0 irq 28 # this one comes w/ Viper and leds
#wax* at mainbus0 irq 27 # Wax may host EISA as well
mongoose* at mainbus0 irq 17 # EISA Bus Adapter (i82350 or TI???)
@@ -79,8 +80,9 @@ sti* at mainbus0 irq ? # [H]CRX-{8,24,48}[Z] graphics
# internal i/o space
gsc0 at asp? # 7xx
-gsc0 at lasi? # 712,715/100,725/75,725/100
-#gsc1 at wax? # basically it's another face of LASI
+gsc0 at lasi0 # 712,715/100,725/75,725/100
+gsc1 at lasi1
+#gsc2 at wax? # it's another face of LASI
#vme* at vmeb?
#option VMEVERBOSE
@@ -96,7 +98,7 @@ option EISAVERBOSE
#hil* at gsc? irq 1 # Human Interface Loop, kbd and mouse
#hkbd* at hil? code 0 # keyboard
-#hilnmi0 at kbd? irq 2 # double-break on hil keyboard
+#hilnmi0 at hil? irq 2 # double-break on hil keyboard
#tb* at hil? code 1 # graphics tablet
#hms* at hil? code 2 # mouse, 3b mouse, 3b trackball, 3b quadrature mouse
#knob* at hil? code 3 # knob
@@ -109,15 +111,15 @@ option EISAVERBOSE
com0 at gsc? irq 5 # RS/232 serial port
#com1 at gsc? irq 6 # RS/232 serial port
lpt0 at gsc? irq 7 # both com and lpt are on WD16C552
-ie0 at gsc? irq 8 # 82C5[89]6 ether
+ie0 at gsc0 irq 8 # 82C5[89]6 ether
#tms* at gsc? irq 10 # TMS380C26 Network Controller (either 802.3 or 802.5)
-#siop0 at gsc? irq 9 # NCR 53C7xx
-#siop1 at gsc? irq 3 # NCR 53C7xx (Fast/Wide)
+#siop0 at gsc? irq 9 # NCR 53C700/710
+#siop1 at gsc? irq 3 # NCR 53C720 (Fast/Wide)
#scsibus* at siop?
#aone* at gsc? irq 13 # Audio Type 1 (PSB 2160-N)
-#audio* at aone?
-#harmony* at gsc? irq 13 # Audio Type 2 (CS4215)
-#audio* at harmony?
+#audio* at aone?
+#harmony* at gsc? irq 13 # Audio Type 2 (CS4215/AD1849)
+#audio* at harmony?
#pckbc* at gsc? irq 26
#pckbd* at pckbc? # PS/2 keyboard
#pms* at pckbc? # PS/2 mouse
@@ -126,8 +128,9 @@ ie0 at gsc? irq 8 # 82C5[89]6 ether
# EISA devices
#sh* at eisa? slot ? # Interphase Seahawk 4811 EISA/FDDI board
-ep* at eisa? slot ?
+#ep* at eisa? slot ?
#ie* at eisa? slot ?
+#option BHADEBUG
#bha* at eisa? slot ?
#scsibus* at bha?
diff --git a/sys/arch/hppa/conf/files.hppa b/sys/arch/hppa/conf/files.hppa
index a288ccef044..7a0e3eb2791 100644
--- a/sys/arch/hppa/conf/files.hppa
+++ b/sys/arch/hppa/conf/files.hppa
@@ -1,4 +1,4 @@
-# $OpenBSD: files.hppa,v 1.31 2001/06/26 02:41:25 mickey Exp $
+# $OpenBSD: files.hppa,v 1.32 2001/12/02 04:03:53 mickey Exp $
#
# hppa-specific configuration info
@@ -62,7 +62,7 @@ define gscbus { }
# Mainbus
#
-define mainbus {[irq = -1]}
+define mainbus {[offset = -1], [irq = -1]}
device mainbus
attach mainbus at root
file arch/hppa/hppa/mainbus.c mainbus
@@ -120,7 +120,7 @@ major {rd = 3}
# GSC bus devices
#
-device gsc {[irq = -1]}
+device gsc {[offset = -1], [irq = -1]}
attach gsc at gscbus
file arch/hppa/gsc/gscbus.c gsc
diff --git a/sys/arch/hppa/gsc/gscbus.c b/sys/arch/hppa/gsc/gscbus.c
index 02ed051d1cf..258381bf402 100644
--- a/sys/arch/hppa/gsc/gscbus.c
+++ b/sys/arch/hppa/gsc/gscbus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gscbus.c,v 1.15 2001/11/05 17:25:57 art Exp $ */
+/* $OpenBSD: gscbus.c,v 1.16 2001/12/02 04:03:57 mickey Exp $ */
/*
* Copyright (c) 1998 Michael Shalayeff
@@ -167,6 +167,7 @@ gscattach(parent, self, aux)
sc->sc_dmatag._dmamem_unmap = gsc_dmamem_unmap;
sc->sc_dmatag._dmamem_mmap = gsc_dmamem_mmap;
+ ga->ga_hpamask = HPPA_FLEX_MASK;
pdc_scanbus(self, &ga->ga_ca, ga->ga_mod, MAXMODBUS);
}
@@ -175,6 +176,10 @@ gscprint(aux, pnp)
void *aux;
const char *pnp;
{
+ struct gsc_attach_args *ga = aux;
+
+ if (pnp)
+ printf("%s at %s", ga->ga_name, pnp);
return (UNCONF);
}
diff --git a/sys/arch/hppa/gsc/gscbusvar.h b/sys/arch/hppa/gsc/gscbusvar.h
index ece10350b53..cc74b12b3df 100644
--- a/sys/arch/hppa/gsc/gscbusvar.h
+++ b/sys/arch/hppa/gsc/gscbusvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: gscbusvar.h,v 1.3 1999/08/16 02:48:39 mickey Exp $ */
+/* $OpenBSD: gscbusvar.h,v 1.4 2001/12/02 04:03:57 mickey Exp $ */
/*
* Copyright (c) 1998 Michael Shalayeff
@@ -47,6 +47,7 @@ struct gsc_attach_args {
#define ga_mod ga_ca.ca_mod
#define ga_type ga_ca.ca_type
#define ga_hpa ga_ca.ca_hpa
+#define ga_hpamask ga_ca.ca_hpamask
#define ga_dmatag ga_ca.ca_dmatag
#define ga_irq ga_ca.ca_irq
/*#define ga_pdc_iodc_read ga_ca.ca_pdc_iodc_read */
diff --git a/sys/arch/hppa/hppa/mainbus.c b/sys/arch/hppa/hppa/mainbus.c
index ef8df572df6..2e97ac96d40 100644
--- a/sys/arch/hppa/hppa/mainbus.c
+++ b/sys/arch/hppa/hppa/mainbus.c
@@ -1,7 +1,7 @@
-/* $OpenBSD: mainbus.c,v 1.17 2001/11/28 13:47:38 art Exp $ */
+/* $OpenBSD: mainbus.c,v 1.18 2001/12/02 04:03:57 mickey Exp $ */
/*
- * Copyright (c) 1998-2000 Michael Shalayeff
+ * Copyright (c) 1998-2001 Michael Shalayeff
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -842,6 +842,7 @@ mbattach(parent, self, aux)
bzero (&nca, sizeof(nca));
nca.ca_name = "pdc";
nca.ca_hpa = 0;
+ nca.ca_hpamask = 0;
nca.ca_iot = &hppa_bustag;
nca.ca_dmatag = &hppa_dmatag;
config_found(self, &nca, mbprint);
@@ -849,6 +850,7 @@ mbattach(parent, self, aux)
bzero (&nca, sizeof(nca));
nca.ca_name = "mainbus";
nca.ca_hpa = 0;
+ nca.ca_hpamask = HPPA_IOSPACE;
nca.ca_iot = &hppa_bustag;
nca.ca_dmatag = &hppa_dmatag;
pdc_scanbus(self, &nca, -1, MAXMODBUS);
@@ -879,7 +881,8 @@ mbprint(aux, pnp)
printf("\"%s\" at %s (type %x, sv %x)", ca->ca_name, pnp,
ca->ca_type.iodc_type, ca->ca_type.iodc_sv_model);
if (ca->ca_hpa) {
- printf(" hpa %x", ca->ca_hpa);
+ if (ca->ca_hpa & ~ca->ca_hpamask)
+ printf(" offset %x", ca->ca_hpa & ~ca->ca_hpamask);
if (!pnp && ca->ca_irq >= 0)
printf(" irq %d", ca->ca_irq);
}
@@ -896,9 +899,13 @@ mbsubmatch(parent, match, aux)
register struct confargs *ca = aux;
register int ret;
- if ((ret = (*cf->cf_attach->ca_match)(parent, match, aux))) {
+ if (ca->ca_hpa && ~ca->ca_hpamask && cf->hppacf_off != -1 &&
+ ((ca->ca_hpa & ~ca->ca_hpamask) != cf->hppacf_off))
+ return (0);
+
+ if ((ret = (*cf->cf_attach->ca_match)(parent, match, aux)) &&
+ cf->hppacf_irq != -1)
ca->ca_irq = cf->hppacf_irq;
- }
return ret;
}
diff --git a/sys/arch/hppa/include/autoconf.h b/sys/arch/hppa/include/autoconf.h
index 61a1989e168..392aa5788fa 100644
--- a/sys/arch/hppa/include/autoconf.h
+++ b/sys/arch/hppa/include/autoconf.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: autoconf.h,v 1.10 2001/05/05 22:33:42 art Exp $ */
+/* $OpenBSD: autoconf.h,v 1.11 2001/12/02 04:03:57 mickey Exp $ */
/*
* Copyright (c) 1998 Michael Shalayeff
@@ -39,12 +39,14 @@ struct confargs {
int ca_mod; /* module number on the bus */
struct iodc_data ca_type; /* iodc-specific type descrition */
hppa_hpa_t ca_hpa; /* module HPA */
+ hppa_hpa_t ca_hpamask; /* mask for modules on the bus */
bus_dma_tag_t ca_dmatag; /* DMA tag */
int ca_irq; /* module IRQ */
struct pdc_iodc_read *ca_pdc_iodc_read;
};
-#define hppacf_irq cf_loc[0]
+#define hppacf_off cf_loc[0]
+#define hppacf_irq cf_loc[1]
/* this is used for hppa_knownmodules table
* describing known to this port modules,